问题标签 [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 回答
267 浏览

delphi - Delphi minmax HashTable 调试 - 关闭

解决了,stuid bug

====================================

我是 Sum GNU Anti Reversi 作者。我想为我的 Delphi 程序添加哈希表。我使用的是 Delphi 2010。我在 minmax 函数中添加了哈希表。我不知道那台计算机给出了错误的分数。请帮助我谢谢。原创节目

http://sourceforge.net/projects/antireversi8x8/files/Delphi_v0.6c3_Eng/SumAntiReversi8x8v0.6c3src.zip/download

哈希表版本:

https://sourceforge.net/projects/antireversi8x8/files/Debug-Will%20delete/debuging.zip/download

修改部分:

0 投票
2 回答
13714 浏览

algorithm - Othello Evaluation Function

I am currently developing a simple AI for Othello using minimax and alpha-beta pruning.

My question is related to the evaluation function for the state of the board.

I am currently looking to evaluate it by looking at:

  1. Disc count (parity)

  2. Number of legal moves

  3. Importance of particular positions

So lets say the root node is the initial game state. The first action is the the AI's action while the second action is the opponent's action.

At node level 1, do I evaluate the disc count of my AI's chips and the number of legal moves it can make at the point of time after it has completed an action?

At node level 2, do I evaluate the disc count of the opponent's chips and the number of legal moves it can make at the point of time after the opponent has completed an action?

Meaning AI move -> Opponent move ==> At this point of time I evaluate the opponent's disc count and the number of legal the opponent can make.

0 投票
3 回答
14452 浏览

heuristics - Reversi(奥赛罗)想法需要启发式函数

我刚刚研究了启发式函数,但我找不到用于 reversi(奥赛罗)的启发式函数的想法,我只需要一个好主意来对棋盘的某些状态进行分级

我想过:

  1. 计算移动次数
  2. 计算光盘的数量
  3. 并计算角落中的光盘数量并给他们更好的分数,

不知道好不好。

0 投票
1 回答
5513 浏览

python - python3黑白棋游戏代码

我有一个用于 python 3 的黑白棋游戏的 2 个文件。我的第一个文件称为 reversi.py。它实现了 (a) 游戏玩法的高级控制(例如,从计算机玩家和人类玩家那里获取动作,确定玩家是否用完动作,确定游戏结束并宣布游戏结果) , (b) 通过 QuickDraw 渲染游戏,以及 (c) 从人类玩家那里获取输入。

继承人的文件:

这个文件就完成了。我的第二个文件名为 Game.py。第一个文件为玩家可以做出的动作导入这个文件。

我应该填写三个缺失的定义。假设给定回合,check move(self, move, d) 方法检查给定的移动是否沿某个方向 d 得到验证。它相应地返回 True 或 False。换句话说,如果从move指定的格子开始,可以捕获沿方向d的许多对手棋子,那么应该返回一个True。该方法可以方便地用于其他方法,例如 get move() 和 play move()。get move(self) 方法查找当前回合的所有有效移动,并将它们返回到列表中。例如,如果在 [2,4] 和 [3,6] 处有两个移动,那么返回值应该是 [[2,4], [3,6]]。select move(self) 方法从 self.move 中选择一个移动并返回它。显然,最简单的方法是返回随机移动。

所以基本上我有这是“check_move”功能的基础:

这是正确的方向吗?

另外对于 get_moves 我有这样的理由:

0 投票
1 回答
728 浏览

java - 黑白棋软件设计

我必须为我大学的一门实践课程设计一个黑白棋版本。它应该具有单人模式(针对自写的 AI)、热座模式和通过互联网的多人模式。到目前为止,我已经在 MVC 中编写了黑白棋类,为此我使用了以下三个接口。(Board-Class 模拟了具有操作它的方法的板。)但是现在我想知道我应该如何实现这三个基本功能。我的第一个想法是实现 MVC 的第二层(Hotseat、AI 和网络各一个),其中 reversiController 将用户所做的所有输入传输到上层,上层决定如何处理这个动作。上层的移动应该将下层的视图作为一个框架,并为用户显示额外的信息和可能性(再次,取决于游戏的类型)这是一个合理的方法,或者你会如何处理这个问题?提前致谢!

}

}

公共接口 IReversiController {

}

0 投票
5 回答
133 浏览

c# - 当方法返回 t > 1 作为布尔值时,这意味着什么?

有人可以解释以下返回语句的用途/含义是什么:t > 1; (见最后一个 if 语句最后一个方法)

该代码来自一个名为“Reversi”的游戏http://en.wikipedia.org/wiki/Reversi

此方法检查您是否附上了另一位玩家的棋子。

0 投票
3 回答
179 浏览

java - 如果语句没有按预期工作

基本上,我目前正在尝试为 Android 制作一个黑白棋游戏,而我的 if 语句让我有点头疼,似乎如果条件适合不止一个,它只是通过其中一个语句的动作然后离开另一个。我的代码如下所示:

Check 只是一个 int 数组,它记录了哪个玩家在棋盘上持有该特定棋子 现在,由于某种原因,如果我的位置满足其中两个条件,它只会通过一个 if 语句,而且通常这会产生游戏将其视为无效的举动,我想知道如何解决这个问题?

0 投票
0 回答
479 浏览

java - Java中的客户端/服务器游戏聊天通信

我目前正致力于在终端内重新创建奥赛罗,在确定它是谁移动时我需要一些帮助。我希望一次只有一个人能够输入他们的动作。它还应该向每个玩家发送一条消息,告诉它是谁在移动。实现这一点的最佳方法是在每个应用程序中运行两个扫描仪——一个监听终端,一个监听键盘。但是我该怎么做呢?谢谢。我引用了这个,但由于某种原因我无法让它工作......当谈到 Protocol 类时,我有点迷茫。

http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html

0 投票
1 回答
1678 浏览

c - 黑白棋游戏中的 C 指针

我希望这个函数在玩家 1 放置位置程序 chack 之后,左侧是玩家的 1 棋子以及玩家 1 的两个棋子之间的所有对手的爪子都打开“X”,就像在黑白棋游戏中一样。

这是整个未完成的代码:

0 投票
1 回答
642 浏览

matlab - Matlab Reversi'有效移动'检查

目前我的移动检查器出现问题,似乎我在代码中放入的故障保护使其看起来不超出矩阵的范围不起作用,有什么建议吗?

还有一个问题是它似乎不起作用(即我仍然可以将碎片放在任何我想要的地方!)。我之前使用的代码也在下面列出

代码:

完成@boundries 时返回错误:

另一块: