109得票27回答
国际象棋是否存在完美算法?

我最近和一个非程序员的人讨论了关于象棋计算机可能性的问题。虽然我对理论不是很精通,但我认为自己知道足够多。 我认为不存在一台确定性图灵机能够在每次下棋时总是赢或者平局。即使你搜索所有的玩家1/2移动组合空间,计算机每一步决策的单个移动也是基于启发式的。由于基于启发式,计算机的策略并不一定能打...

107得票3回答
在开发国际象棋程序时,使用给定值初始化方向数组的意义是什么?

我是新手竞赛编程者,我注意到很多优秀的程序员在他们的代码中经常有这四行(尤其是涉及数组的代码): int di[] = { 1, -1, 0, 0, 1, -1, 1, -1 }; int dj[] = { 0, 0, 1, -1, 1, -1, -1, 1 }; int diK[] = {...

107得票19回答
国际象棋棋盘上的骑士最短路径问题

我正在为一场即将到来的编程比赛而练习,遇到了一个问题,让我感到十分困惑。然而,我觉得这是一个我现在应该学习的概念,而不是抱着侥幸心理等待它从未出现。 基本上,它涉及到国际象棋棋盘上的马。你会得到两个输入:起始位置和结束位置。目标是计算并打印出马到达目标位置的最短路径。 我从未接触过最短路径...

100得票31回答
程序员难题:在整个游戏过程中编码棋盘状态

并不是一个严格的问题,更像是一个谜题... 这些年来,我参与过一些新员工技术面试。除了问"你知道X技术吗"这样的标准问题外,我还尝试了解他们如何解决问题。通常,我会在面试前一天通过电子邮件发送问题,并期望他们在隔天想出解决方案。 通常结果会相当有趣——错误的,但很有趣——如果他们能够解释为...

89得票4回答
编写国际象棋引擎的好资源有哪些?

我有兴趣编写国际象棋引擎(主要是作为学习练习),如果有人知道任何可能有用的资源,我会很感兴趣,包括但不限于:论文、书籍、理论、教程等等。

88得票3回答
面向对象设计的国际象棋游戏

我试图了解如何以面向对象的方式设计并思考,希望从社区中获取有关此主题的反馈。以下是我想以面向对象的方式设计的棋盘游戏的示例。这是一个非常广泛的设计,我在这个阶段的重点只是确定谁负责哪些消息以及对象如何相互交互以模拟游戏。如果存在糟糕设计的元素(高耦合、差凝聚等),请指出并说明如何改进。 棋盘...

50得票13回答
实现一个象棋引擎有多难?

我在想实现一款国际象棋引擎有多难。是否已经存在开源实现? 似乎需要为给定的棋局设定一个评分函数,并以非常快的方式探索几个可能的未来棋局。当然不可能探索所有可能的未来着法,因此可以贪婪地跟随最有前途的着法,或者使用类似模拟退火这样的近似技术以概率性地跟随可能的着法。 您认为这是否在机器学习研...

33得票3回答
JavaScript中的国际象棋游戏

是否有纯粹使用JavaScript编写的国际象棋游戏API?不包含Flash! 有人知道国际象棋游戏中通常使用的算法吗?

33得票4回答
使用通用国际象棋接口(UCI)

我计划制作一个与UCI国际象棋引擎交互的程序。我已经做了一些研究,但在深入了解之前,我想获得更多的信息。我想知道你们之中是否能提供一些UCI引擎和前端程序之间的“交流”示例。我不太关心实际接口代码(如发送/接收命令),那应该很简单。我只是想得到一些小游戏和一些选项的好例子。我目前正在使用Sto...

30得票8回答
如何为国际象棋编写神经网络程序?

我希望编写一个能够学习制定好走法并打败对手的国际象棋引擎。我已经编写了一份国际象棋棋盘表示和一个输出所有可能移动的函数。因此,我只需一个评估函数来确定给定情况下棋局的优劣程度。因此,我想使用人工神经网络来评估给定的位置。输出应该是一个数值。数值越高,这个位置对白方就越有利。 我的方法是构建一...