所以我试图用Java编写一个tic tac toe游戏。大部分都完成了,但是,如果有人选择了一个已经被占用的空间,我不能归还无效的移动。
下面是我想弄清楚的代码。我认为既然空间是由数字0表示的(我的教授告诉我们的),有
board[i][j] == 0
在if语句中将阻止播放器重复该空格。
public static boolean isLegalMove(int[][] board, int row, int col) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (board[i][j] == 0 && row <= 2 && row >= 0 && col <= 2 && col >= 0) {
return true;
}
}
}
return false;
}
除非我遗漏了一些明显的东西,否则您的循环似乎是不必要的,并且使您的逻辑过于复杂。您已经有了要检查的行和列,所以没有理由不使用它们:
public static boolean isLegalMove(int[][] board, int row, int col) {
return board[row][col] == 0;
}
这有出现ArrayIndexOutOfBoundsException
的风险,但这更像是辅助方法getrow
和getcol
的症状,您应该确保这些方法不能返回一个超出界限的值。你应该要求你想要什么来简化事情。
早期文章:如何使tictactoe程序可伸缩 我已经尝试使一个Tic Tac Toe程序(人机)可伸缩(板大小可以改变)。我之前有过一些大问题,但大部分都解决了。 游戏的规则是基本的Tictactoe,但有一个不同的规则是,无论棋盘有多大(当)玩家或计算机只需要连续五个分数就能获胜。 现在我的程序唯一的破局问题是决定谁赢了这场比赛。这场比赛现在只可能以‘平局’结束。(我还没有实现“”)。 具体的问
我试着在IntelliJ上使用Lombok和Maven和VRaptor,但它不起作用。 我已经在stackoverflow中阅读了一些信息,但没有解决我的问题,我已经在Intellij中启用了注释处理器,但仍然一无所获。 我也试图从命令行(Windows)编译它,但没有成功。 我还尝试在没有maven的情况下创建另一个项目,添加库,创建一些用于测试的类,它可以完美地工作、编译和运行。 有什么帮助吗
本文向大家介绍jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法,包括了jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法。分享给大家供大家参考,具体如下: 项目描述:九宫格的跑马灯抽奖特效,抽中奖品1-9的概率分别是2%,2%,4%,1%,12%,1%,8
我试图在Spigot 1.16.1插件中使用MongoDB,但我的maven导入遇到了问题。 在我的IDE(EclipseIDE)中没有错误。如果我导出插件并重新加载服务器,会出现以下错误: pom.xml 主课 我已经试着用一个。jar文件,但那也不起作用。 任何帮助都很感激
本文向大家介绍jQuery实现适用于移动端的跑马灯抽奖特效示例,包括了jQuery实现适用于移动端的跑马灯抽奖特效示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现适用于移动端的跑马灯抽奖特效。分享给大家供大家参考,具体如下: 图片全部隐私处理 跑马灯抽奖特效难点一:奖品位置排放,如下图 按照代码常规,奖品1,2,3,4是顺序排列,在这里,使用了定位将他们绕成一个圈。 难
描述 Makeblock水泵电机 – 直流 12V / 370-04PM具有12V电机和坚固的热塑体,广泛用于水泵,汽车水泵,实验泵,盆景假山,DIY项目等。 规格 额定电压:DC 12V 负载:水 吸水率:1L-1.2L/分 电流(负载):比320毫安小于 流速:2.0LPM 总尺寸:D27×75 水孔直径:6.5毫米 最大压力:大于360mmHg 噪声:< 60分贝 尺寸图(mm)