Java 抽签决定抽签
我正在创建一个tic-tac-toe游戏,并使用一维数组创建了棋盘 我有下面的代码,但它返回一个真的,即使董事会仍然是空的,很多更多的情绪可以发挥。谁能告诉我哪里出了问题。谢谢Java 抽签决定抽签,java,if-statement,for-loop,Java,If Statement,For Loop,我正在创建一个tic-tac-toe游戏,并使用一维数组创建了棋盘 我有下面的代码,但它返回一个真的,即使董事会仍然是空的,很多更多的情绪可以发挥。谁能告诉我哪里出了问题。谢谢 public boolean gameIsADraw() { for (int i = 0; i <= 9; i++) { if (!board[i].equals(" ")){ if (gameIsAWin() == false) { }
public boolean gameIsADraw() {
for (int i = 0; i <= 9; i++) {
if (!board[i].equals(" ")){
if (gameIsAWin() == false) {
}
return true;
}
}
return false;
}
public boolean gameIsAWin() {
for (String s: winningConditions) {
if (winningSituations(s.charAt(0), s.charAt(1), s.charAt(2)) == true){
return true;
}
}
return false;
}
public boolean gameIsADraw(){
对于(int i=0;i您可以尝试:
public boolean gameIsADraw(){
for(int i = 0; i <= 9; i++){
if(!board[i].equals(" ") && !gameIsAWin){
break;
}else if(i == 9) return true;
}
return false;
}
public boolean gameIsADraw(){
对于(int i=0;i在上述评论中,您确认有三种情况:
- 如果有人赢了比赛,返回false
- 如果游戏尚未结束,则返回false
- 否则,这场比赛就是平局,回到正轨
假设gameIsAWin()
工作正常,您可以单独检查这些情况:
public boolean gameIsADraw() {
// If someone has won the game, return false
if (gameIsAWin()) {
return false;
}
// If the game is not over, return false
for (int i = 0; i <= 9; i++) {
if (" ".equals(board[i])) {
return false;
}
}
// Otherwise, the game is a draw, return true
return true;
}
public boolean gameIsADraw(){
//如果有人赢了比赛,返回false
if(gameIsAWin()){
返回false;
}
//如果游戏尚未结束,则返回false
对于(int i=0;i如果你有一块板3x3,那么3是你应该搜索的空盒子,就好像3个盒子是空的,那么两个玩家仍然有希望,我希望你喜欢我的答案,谢谢
同样,对于4x4的电路板,您应该检查
if(empty>=4) // game left empty
您是否尝试过实现gameIsAWin()正确吗?这可能有效。请发布完整代码。我建议使用Eclipse之类的IDE进行调试。预期的功能是什么?您返回的是布尔值。如果为true,则表示游戏是平局,如果为false,则表示有人赢了或游戏没有结束?I<9
,因为棋盘有9个平局(索引在[0..8])。@Matthew已经粘贴了gameIsAWin()方法-这是正确的,因为您需要在for
循环之后返回,否则这将无法编译。请认为这可能是一个输入错误;return false
是否应该在for
循环之外?@JonathanNewmuis谢谢。是的,这是一个输入错误,我现在已经将return false
移到了t之外如果(“.equals(board[i]),则声明{给出了一个编译错误。我是一个初学者,所以不太清楚为什么…有什么建议吗?请解释编译错误,它到底说了什么。不过,您可能最好使用!board[i]。改为使用equals(“”
)。但是,我刚才想,字符串数组或jbutton或两者都没有?如果board[i]
是一个字符串(因此board
是一个字符串[]),这应该可以工作。按的方式执行。equals(board[i])
而不是board[i]。equals(“”
允许您避免显式声明board[i]
可能为空的情况。还请注意,如果(!board[i].equals(“”),则缩进)
不一样,因为它会改变你必须返回的条件。我认为这个条件会在最后一步之前做出决定。