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

python-3.x - 检查黑白棋/黑白棋的移动[Python 3]

我目前正在尝试在 python 3 中创建奥赛罗游戏(又名黑白棋)。

我对程序的部分有很大的问题,它应该评估移动是否有效。

我要创建的内容:

  1. 检查板上的位置是否为空
  2. 检查是否有相反颜色的邻居
  3. 如果有这样的邻居,请继续朝那个方向前进,看看我们是否可以在不越过空位的情况下到达我们自己的一块。

我尝试了许多不同的功能,但我无法正确...

在下面的链接中是我最近的尝试,

github上的git链接

0 投票
1 回答
159 浏览

java - 在 JButton 上画一个椭圆

所以基本上我正在尝试创建一个黑白棋游戏。首先,我创建了一个由按钮填充的板,并为它们附加了 ID,因此我可以在需要时访问它们。现在我正在尝试在每个按钮上绘制一个游戏块,但是我无法获取按钮的 getGraphics(),因为我读到这是一个坏主意并且还返回 null。请记住,我希望将所有实体分开:板、单元和部件,因为我使用 MVC 模式开发它。

板子.java

细胞.java

磁盘.java

TL;DR我应该如何重写我的代码,以便每个按钮上都有一个椭圆形。

提前致谢。

0 投票
1 回答
117 浏览

java - Reversi 仅适用于合法瓷砖,但不会在两者之间翻转

我正在为 APCS 编写黑白棋的 Swing 实现。我的实现只会点击合法位置,但不会翻转中间的瓷砖。为什么会这样,我该如何解决?

以下是相关的代码部分:

为了完整起见,我在这里对所有代码做了一个要点

0 投票
4 回答
347 浏览

c - 使用指针改变矩阵

在我们的c课中,老师给了我们一个小项目来构建一个“黑白棋”游戏。我在构建电路板时遇到了麻烦。

我检查了程序,程序得到:

运行时检查失败 #2 - 变量“Board”周围的堆栈已损坏

当它更改第三行的第一个 X 时。例如,如果我将程序运行到第 2 行 (16) 的末尾,我不会收到此错误。

0 投票
2 回答
156 浏览

html - 根据窗口大小绘制游戏板/桌子大小

我有一个关于根据正在使用的窗口或浏览器的大小调整/绘制游戏板的问题。我正在使用 html/css/js 编写黑白棋游戏。将附上我想要实现的图像。游戏板本身与显示在其右侧的信息具有相同的高度。例如,我希望它是窗口高度的 70%,这样我仍然有剩余的 30% 来制作边框等。在 HTML 中,我定义了一个带有 'board-table' id 的表格,然后我尝试制作一个变量'size' 来确定这张桌子的高度。在 CSS 中,我指定高度应为 70%,以便之后可以绘制游戏板。但是,当我以不同的尺寸重新加载页面时,它总是有一个前缀大小,因此我想知道如何修复它。下面显示了我的代码的一部分。

HTML:

CSS:

Javascript:

我正在努力实现的示例。

0 投票
1 回答
105 浏览

python - 尽管存在,但无法从列表中删除元素 - Reversi

我正在尝试用 Python 编写一个简单的黑白棋游戏。

在我的代码中有两个主要列表:

takered - 包含红色玩家占据的位置

takeblue - 包含蓝色玩家占据的位置

在玩家的每一次移动之后,我都会更新这些列表以包含每个玩家的更新位置

这是我的问题:

当我使用输入运行代码时:

R

02

23

我收到一条错误消息,指出在列表中找不到最后一个索引,因此无法删除它。

到目前为止,我尝试的是使用 for 循环中的缩进,因为其余代码对我来说似乎是正确的。

我的代码:

欢迎任何帮助!

终端:

0 投票
1 回答
31 浏览

python - 有没有办法在 django 的 if 语句中呈现请求?

我正在尝试为黑白棋游戏编写一个 django Web 应用程序。我在将新表呈现到网站时遇到问题。

视图.py

模板

网址.py

当我尝试在 request.method 中返回 HttpResponse 时,会引发以下错误:The view GameConfiguration.views.table didn't return an HttpResponse object. It returned None instead.

如果我将选项卡向左移动 return render(request, 'table.html', context=ctxt),则无法识别作为新板的 ctxt 变量(它说它在分配之前使用),这意味着我无权访问新绘制的表。

我需要 POST 方法中的 row 和 col 才能翻转棋盘并切换播放器。

我真诚地感谢你的时间!谢谢!

0 投票
1 回答
235 浏览

javascript - 如何查找二维数组中两个坐标之间的所有元素

本质上,我正在尝试创建游戏黑白棋。如果你不知道它是什么,为了缩短它,我有一个 8x8 的方格板。有 2 个坐标,我需要确定这两个坐标之间的所有正方形并填充它们。这两个坐标要么在同一个 y 上,要么在同一个 x 上,要么在彼此对角线上。

有人可以解释我将如何做这样的事情背后的逻辑吗?如何确定 2 个坐标之间所有元素的坐标。

0 投票
0 回答
45 浏览

python - 奥赛罗的极小极大函数,不假思索地选择第一个点

我正在尝试为奥赛罗游戏编写极小极大算法。当有更好的位置可供使用时,我的代码会从它应该选择的列表中选择第一个可用位置:

例如,这是我的驱动程序代码:

我的代码选择了 [0,0],而它真正应该选择 [2,3]

这是我实际的 AI minimax 代码:

任何帮助将不胜感激

0 投票
1 回答
136 浏览

python - 如何使散列矩阵(奥赛罗棋盘)的自定义散列函数编号

我必须做需要自定义散列矩阵函数的项目。项目是关于黑白棋(黑白棋)游戏,这意味着我需要散列固定的 8x8 矩阵。

这是初始化矩阵的样子:

以下是电路板外观的一个示例:

如您所见,一位玩家是 1(始终是我),第二位玩家是 2(始终是计算机)并且.是空棋盘位置。

我做了某种散列函数。它看起来像这样:

函数接受板(矩阵)并首先创建包含所有板字段的字符串,其顺序和状态与板中一样。之后,我使用for循环中的公式对该字符串进行哈希处理。函数ord返回字符的 ASCII 值。

我知道这不是一个好的哈希函数,所以我很想听听一些改进这个或实现一些完全不同的想法。我看到了基于用两个 64 位二进制数表示棋盘的想法,其中第一个数字包含玩家 1 在所有其他地方都有棋子和零的地方,第二个数字包含玩家 2 在所有其他地方都有棋子和零的地方地方。在那之后,我记得,我必须使用某种算法对这两个数字进行哈希处理。问题是,我不知道这是否是一个好的散列函数,以及我是否可以实现它。

需要注意的重要一点是,我不能使用内置哈希函数或从某个库导入的任何其他函数。我必须使用某种算法制作自定义哈希函数。

提前致谢。