Java 比较一维数组中的3个元素
如何检查一维数组的3个元素是否等于特定值 背景:我正在检查抽签游戏的赢家(零和十字架)。换言之,检查3x3栅格中是否有任何直线展平为一维阵列 以下是我尝试过的代码: 尝试1:Java 比较一维数组中的3个元素,java,arrays,compare,Java,Arrays,Compare,如何检查一维数组的3个元素是否等于特定值 背景:我正在检查抽签游戏的赢家(零和十字架)。换言之,检查3x3栅格中是否有任何直线展平为一维阵列 以下是我尝试过的代码: 尝试1: switch () { case board[(6&3&0) || (7&4&1)]: case board[7&4&1]: case board[8&5&2]: case board[0&1&2]: case board[3&
switch ()
{
case board[(6&3&0) || (7&4&1)]: case board[7&4&1]: case board[8&5&2]: case board[0&1&2]: case board[3&4&5]: case board[6&7&8]: case board[6&4&2]: case board[8&4&0]:
System.out.println("Equal to x")
break;
}
尝试2:
if (board[7] , board[4] , board[1] == 'X')
system.out.println("Equal");
尝试3:
if ( board[6&3&0] == 'X' || board[7&4&1] == 'X' || board[8&5&2] == 'X' || board[0&1&2] == 'X' || board[3&4&5] == 'X' || board[6&7&8] == 'X' || board[6&4&2] == 'X' || board[8&4&0] == 'X') {
System.out.println("Equal to x");
}else if
( board[6&3&0] == 'O' || board[7&4&1] == 'O' || board[8&5&2] == 'O' || board[0&1&2] == 'O' || board[3&4&5] == 'O' || board[6&7&8] == 'X' || board[6&4&2] == 'O' || board[8&4&0] == 'O'){
System.out.println("Equal to o!");
}
您的电路板可能有一个二维阵列:
board = new char[3][3]
你想知道你是否能把它映射到一个维度。答案是肯定的。只需在你的头脑中对方块进行编号:
012
345
678
申报
board = new char[9]
并在代码中使用这些索引。您的tic-tac-toe“游戏场”如下所示:
0 1 2
3 4 5
6 7 8
0-8是char[]
数组中的索引:
marks = new char[9];
要检查是否有三个“x”连成一行:
'x' == marks[0] == marks[3] == marks[6] // a vertical row
'x' == marks[0] == marks[1] == marks[2] // a horizontal row
'x' == marks[0] == marks[4] == marks[8] // a diagonal row
这应该让你开始
编辑:这将编译:
boolean win = marks[0] == 'x' && marks[3] == 'x' && marks[6] == 'x';
天哪,这是什么?学习java语法,然后问一个问题。使用3d阵列。棋盘[1][2][3]有效,但棋盘[1&2&3]无效。分配的标准是一个一维数组,这就是我被卡住的原因。FlopCoder如果给棋盘[0]任何输入,它会自动宣布一个胜利。我还想过将数组变成一个列表,并比较3个X或O,但这是我最后的选择,我知道有一种更简单的方法来比较两个以上的元素。我尝试了多种组合,如:if('X'==board[7]==board[4]==board[1])System.out.println(“它起作用了!”);无效。我的示例
'x'==marks[0]==marks[3]==marks[6]
不是有效的Java。我会更新我的答案…好的,我明白了,在我使用normal&internal之前,但是您将整个语句转换为boolean,所以&&work就可以了!完美我有类似的,但使用的是单曲&。太棒了,非常感谢