2017-02-18 44 views
-2

首先,我想了解SCIDvsPC项目的工作。我知道基本的SCID已经在很多年前停止了,并且开发者在扩大它和为国际象棋领域做贡献方面做得很好。我们在这个大学的第6学期有一个小项目。我们决定在一个基于各种过滤器的Chess Next Move Analyzer上启动一个项目,并实施自学习和机器学习。与Windows应用程序的GUI元素交互

我一直在研究过去2个月的项目构想。实际上我们需要导入几个过滤器上定义的游戏,并从生成的PGN文件中读取和分析。例如,如果用户选择根据2000-2500的评分范围获得预测的下一个最佳移动,我们的程序应该只导出并分析仅具有来自该范围的对手的PGN文件。我知道该项目可以做到这一切,但我很困惑如何实现这一点。我的意思是我必须手动输入移动,然后点击'生成PGN',但是如何让我的程序执行此操作即从用户处获得输入(如前3个动作),使项目运行这些移动(我必须手动),然后生成PGN文件并将其保存在一个文件夹中。我已经浏览了与Windows中的GUI元素进行交互的网络(我们在使用Linux时没有任何问题),并了解了有关Microsoft UI自动化,Python,Java和C#软件以及类似COM的内容。软件是否支持COM或其中任何一种,或者您是否已经开发了一些这样的功能?请你能指导我解决这个问题吗?

如果要求将此概括为我想要做的就是与GUI元素进行交互,无论它是任何应用程序。以记事本为例。假设我想打开一个文件,找到并替换一个特定的单词。现在,我知道如何手动执行此操作,但是当我有超过数千个文件时,我需要某种程序来为我执行此操作。在我的情况下,像SCID这样的特定程序是否具有一些预处理的功能(读取关于COM的位)?在哪个编程语言域中进行?使用Linux帮助我更多?

+0

如果您确实需要自动化GUI元素,Autoit/Autohotkey。但是,如果你使用命令行界面(如果可用的话)(或许在Linux上更常见),或者在最后给出的记事本示例中,直接读/写文本文件,它会更容易。 – Richard

回答

1

以记事本为例。假设我想打开一个文件,找到 并替换一个特定的单词。现在,我知道如何手动执行此操作,但当我有超过数千个文件时,我需要某种程序来为我做 。在我的情况下做一些特定的程序,如SCID有一些 功能(读取关于COM的位)预处理来处理?

  • 你的情况听起来相当具体,所以我怀疑你是否能找到一个预先存在的程序来为你做这个。含义:你必须自己编码。

在哪个编程语言域中会出现这种情况?

  • 那么,这可能可以用很多很多不同的编程语言来完成。一个简单的shell脚本将能够实现你给出的记事本例子。

正在使用Linux帮助我更多?

  • 没有,你的目标似乎通过一个简单的shell脚本是相当实现的,无论你在Windows,MacOS的或Linux发行版写。
1

@ SB87给了你一些有用的提示,我想扩大他的答案。

  • 对不起,我不认为你知道你在说什么。强化学习(比自学更好的术语)和机器学习不适合大学项目。这是在博士或研究水平,考虑让自己上大学之前,甚至想到这样的事情。

  • UI自动化是可能的,但容易出错并且速度慢。如果你想这样做,你会写一个控制台程序。你提到了一些关于用户输入的内容,你的意思是你想要在用户的鼠标键盘输入上应用机器学习吗?这不会起作用。国际象棋的机器学习需要成百上千的训练集。

我认为你应该淡化这个项目并专注于你可以实现的目标。

相关问题