问题标签 [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.
python - Python:列表不对角搜索
我正在实现游戏 Othello / Reversi 的 Python 版本。但是,我的算法在西南方向搜索时似乎遇到了问题。
这里有一些重要的函数可以帮助我理解我当前的代码是如何工作的:
现在假设当前的板如下所示:
并且玩家移动到第 1 行第 4 列,它说无效,因为它没有检测到要翻转的第 2 行第 3 列中的白色棋子。我所有的其他函数都以相同的方式编写。除了这种情况,我可以让它在其他所有方向上工作。
任何想法为什么它没有在这个对角线方向上检测到这块?
python - 使用 Tkinter (Python) 构建黑白棋游戏
我将如何在 python 中使用 tkinter 构建 Othello GUI?具体来说,我将如何开始让最初的四件作品出现?当我选择一个正方形时,如何让我的棋盘打印出一块的位置?到目前为止,当单击一块时,它会打印出“[189.0, 126.0, 252.0, 189.0]”。我真的只是在寻找指导,非常感谢任何帮助!这是我到目前为止的代码。
java - 反向算法检查
我目前正在构建一个黑白棋游戏,其中棋盘是一个 8x8 整数系列(0 表示空白,1 表示白色,2 表示黑色)。我已经弄清楚如何获得垂直和水平以检查移动并进行移动,但无法弄清楚如何让对角线工作。
c++ - 改变数组的值
我是 C++ 新手,因为我的第一个任务是制作一个黑白棋游戏,但是在 playGame 函数中玩家的输入时我遇到了问题。所以当我输入 x 和 y 时,它会将板数组 [x][y] 的值从空或 '' 更改为 'B'。我也不知道如何将数组引用到函数。如果这些问题对某些人来说很愚蠢,我很抱歉,但请原谅我,我在这里自学。谢谢
c++ - static size_t length(const char_type* __s) {return strlen(__s);}是什么意思?我该如何解决?
我正在使用 C++ 做作业。我正在使用 Xcode 编写黑白棋游戏。当我在左上角的框中放置一个标记时,我得到了上面的线程,即 (1,1)。我只想知道这是什么意思,我该如何解决。谢谢你。PS 指向 displayTop() 函数的线程。
c++ - 在 C++ 黑白棋游戏中搜索其他棋子
我正在用 C++ 制作黑白棋游戏,但是一旦玩家将棋子放在棋盘上,我就无法弄清楚如何检查连续的敌棋棋子。
该板是一个 8x8 二维数组,值为 0、-1 或 1。
- -1 是白棋子,
- 1 是黑色棋子,并且
- 0 为空单元格。
ApplyMove函数将简单地将当前玩家的棋子放在棋盘上并检查是否有敌方棋子在任何方向运行。然后它会朝那个方向翻转所有的碎片。
我的函数将具有以下参数:
我希望程序使用循环从玩家放置的棋子开始遍历所有 8 个可能的方向。如果没有一堆 if 和 else,这将如何以最简单的方式完成?
c - 检查所有 8 个方向的 Reversi 中的有效移动
我有一个功能可以检查我的黑白棋游戏中的有效动作。我查看未占用的空间,并检查任何 8 个方向上的相邻空间是否是相反的部分。(如果我是黑色的,我搜索白色)现在,如果我找到一个相邻的棋子,我应该继续朝那个方向看,看看我自己的棋子是否在最后,然后我返回 true,否则如果它是空的空间或棋盘边界外,我返回假。
当我打印出错误的动作时,我的功能似乎无法正常工作。
deltaRow 和 deltaCol 是在每个方向上的增量,并添加一个时间以继续在指定位置进行搜索。PositioninBounds 是一个功能,我必须确保我的搜索在棋盘边界内。我的 deltarow 和 deltacol 不能同时为 0,所以不知何故我需要跳过这一步(我可能做错了)。Oppositecolor 是一个函数,它返回我自己作品的相反颜色。
c - Reversi Game – C 编程中的移动合法性检查
程序在初始化板后应要求用户配置,然后使用用户配置打印板。然后它相应地打印“W”和“B”的可用移动。最后一步是询问已使用的移动,如果它与之前打印的可用移动匹配,则打印移动有效的消息,然后使用有效移动最后一次打印棋盘。我的代码工作正常,直到它打印配置的板,但之后我在这里得到一些奇怪的输出。请在这里帮忙,谢谢。在下面的程序中输入应该是:U-未占用,B-被黑色占用,W-被白色占用。这是一个示例输入和预期输出:示例
java - Reversi (Othello) Java 简单程序返回错误动作
我一直在尝试实现返回黑白棋/黑白棋游戏的有效移动的简单程序。不幸的是,它不起作用,我真的不明白为什么。它返回 [2,2] 这肯定不是有效的移动。
//myColor, opponentColor, Reversi move etc. are already defined.
如果您指出我的系统存在缺陷,我会很高兴。
python - Python Reversi/Othello AI 在 1 秒内工作
在最近的一项任务中,我们被赋予了创建黑白棋/黑白棋 AI的任务,该 AI 可以在1 秒内进行有效移动。我从一个简单的机器人开始,它采用所有可用的动作并根据值对它们进行评分。在第二个机器人上,我还为排名添加了移动性价值。现在我制作了一个机器人,它使用 minmax 3 向前搜索并根据分数评估这些动作。我的问题是,它被得分/移动性领先一步的机器人击败。有可能还是我对 AI 进行了错误的编码?是因为我只提前 3 步搜索吗?
我的机器人从这个开始:
然后到这个:
我检查了很多次代码,但仍然无法确定我的代码是否有问题,或者 AI 是否因为搜索不够深入而被击败。