【发布时间】:2012-02-25 19:27:12
【问题描述】:
如何检查一维数组的 3 个元素是否等于特定值?
背景:我正在尝试检查井字游戏(noughts and crosss)的获胜者。换句话说,检查 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!");
}
【问题讨论】:
-
天哪,这是什么?
-
学习java语法,然后请教一个问题。使用 3d 数组。 board[1][2][3] 有效,但 board[1&2&3] 无效。
-
赋值的标准是一维数组,这就是我卡住的原因。
-
FlopCoder 如果给 board[0] 任何输入,它会自动宣布获胜。
-
我也想过将数组变成一个列表并比较 3 个 X 或 O,但这是我最后的手段,我知道有一种更简单的方法来比较两个以上的元素