问题标签 [reversi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5963 浏览

java - Java 黑白棋游戏翻转瓷砖

我正在 Java 上创建一个黑白棋(黑白棋)游戏。下面包括我的功能,当瓷砖需要向左、向右、在下方或上方翻转时。出于某种原因,每当启动垂直翻转时,它总是可以正常工作。但是,当启动水平翻转时,有时它什么也不做(当它应该做某事时),或者翻转不应该翻转的空白图块。游戏板是一个 8 x 8 矩阵,使用名为 BlankPiece 的扩展 JButton。除了功能之外,我还会发布它。谁能建议一种更有效/更好的方式来运行这个游戏而没有错误?任何帮助是极大的赞赏!如果您需要澄清,请询问。

这就是我的四个功能(一个用于西、东、北和南)。空白片如下:

问题不在于没有调用任何 checkflip(它们都使用相同的正确参数调用),而是 checkFlipRight 或 CheckFlipLeft 函数中的某些内容......

编辑:按要求提供完整的工作示例。

创建一个包含两个文件的文件夹

一个叫做 Reversi.java,另一个叫做 BlankPiece.java

REVERSI.JAVA:

空白片.JAVA

0 投票
1 回答
165 浏览

python - 计算板的中心

在给定用户定义的行和列的情况下,我正在尝试打印黑白棋。在实现和打印电路板时,我很难找到中心的四块。这是我到目前为止所拥有的:

如何根据用户输入找到新的中心件?最终的电路板应如下所示:

0 投票
1 回答
869 浏览

android - MiniMax reversi 实施

我正在尝试在 Reversi/Othello 游戏中实现 MiniMax 算法,但我非常卡住,因为我编写的函数看起来非常正常,但我得到了一些奇怪的动作,并且在几次之后崩溃。这是寻找最佳移动的函数:

每次移动后,活跃的玩家都会改变。在 GameView 的 onTouchEvent 方法中,先是玩家出手,然后玩家变成了 WHITE 的,也就是 AI,它出手了。它应该在他的树中搜索最好的动作,然后执行一个动作,而不是他做了几个奇怪的动作。我不知道为什么,对于每个分支,我都会创建一个新的棋盘副本,所以我不知道为什么主游戏棋盘会被修改。

有任何想法吗?

0 投票
0 回答
5487 浏览

java - 黑白棋/黑白棋极小极大算法故障

我最近一直在研究 Java 中 Android 上标准 8x8 黑白棋(黑白棋)游戏的 MiniMax 算法。每个日志似乎都显示了每个节点的正确值,但不知何故,算法只是没有选择最佳移动(我将行为与其他人的应用程序进行了比较,在某些时候它们有所不同)。

恐怕有相当多的代码要吞下,但我相信你可以做到这一点!

首先,我的算法类(从那个类我继承了 MiniMax 算法):

findBestMove 函数当然在 MiniMax 子类中被覆盖:

该算法在我当前的 Game 实例中实例化:

我确实做了研究,但我必须承认,仅仅通过谷歌搜索问题并不容易追踪和错误的循环函数。这让我非常坚持进一步的优化(alpha-beta 等),我现在真的真的需要加快速度。

0 投票
1 回答
564 浏览

java - α-β修剪

我为我的 Android 黑白棋游戏实现了以下 MiniMax 算法:

}

我已经在理论上熟悉了 Alpha-Beta 修剪,尽管我在将这些知识应用到这个算法中时遇到了一些麻烦。提前致谢

0 投票
0 回答
315 浏览

android - 黑白棋游戏中的 Alpha-beta

我正在 Reversi 游戏中为 AI 实现 MiniMax 算法,并且我正在尝试添加 Alpha-Beta 修剪方法。如果我理解正确,人工智能应该选择与标准 MiniMax 中完全相同的动作,只是在更短的时间内,这要归功于切断了分支。但是,AI玩的很傻,我试着检查了所有的分支,但是找不到原因。记录在案,没有 alpha-beta 的实现工作正常。这是功能:

整个代码非常庞大,所以我不会在这里全部粘贴。只需询问您认为应该查看的一些函数/类,我就会立即粘贴它们。我将不胜感激任何提示。

0 投票
1 回答
524 浏览

c++ - 类 C++ 黑白棋程序的问题

我在玩黑白棋游戏的 C++ 程序的类时遇到问题。基本上我的问题是尝试在退出函数后更新二维数组(这是一个私有类变量)。该数组被声明为 Board 类的私有变量,如下所示:(MAX_SIZE = 10,但数组大小由 main 中的第一个参数控制。)

这是我创建板的地方,将其设置为所有破折号开始。我用 cout 对其进行了调试,以验证它是否可以正常工作并且确实可以。

这是 printBoard 函数,调用它时只会打印乱码。我怀疑这是因为在 CreateBoard() 函数结束后,电路板正在恢复到以前的状态。

我是 C++ 和类的新手,并不太了解指针等。我怎样才能让电路板更新并在功能之间保持这种状态?任何反馈将不胜感激,谢谢!

0 投票
1 回答
1365 浏览

java - 在 Java 中翻转棋子

我无法让我的游戏正确翻转瓷砖。我已经坚持了无数个小时,似乎无法弄清楚这一点。我检查了其他黑白棋代码示例,不幸的是仍然没有骰子。我注意到,每当我在 gui 中单击占用的 BoardPiece 时,程序都不会感觉到它已被占用。鼓励任何批评/帮助!提前致谢。

类索引 {

}

类 GameBoard 扩展 JPanel {

}

0 投票
1 回答
150 浏览

javascript - 使用 javascript 检测黑白棋上的空白位置

我正在开发一个黑白棋(奥赛罗)游戏,我遇到了一个场景,我要检测棋盘上的空白位置。我写了,但不准确。

演示:http: //jsfiddle.net/huL3qoa3

当您单击板上的任意位置时,将显示一条警报,表明该位置是否为空。效果不好,有什么问题?

0 投票
1 回答
707 浏览

python - 测试游戏的 Python 脚本

我编写了一个名为 reversi.py 的游戏,我想编写一个脚本来帮助测试。该游戏基于人工智能,需要大量时间才能运行。我希望编写一个脚本来运行游戏并将其结果输出到一个文件中,这样我就可以运行游戏 x 次,同时我去做其他事情并返回它。我一直试图从脚本文件中调用游戏。这是我到目前为止所拥有的:

提前致谢!