Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较一维数组中的3个元素_Java_Arrays_Compare - Fatal编程技术网

Java 比较一维数组中的3个元素

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&

如何检查一维数组的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&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就可以了!完美我有类似的,但使用的是单曲&。太棒了,非常感谢