TICTAC TOE游戏仅赢2分,而玩家1总是赢问题-Java

问题描述 投票:0回答:1

我正在用Java制作井字游戏,但遇到了问题。每当玩家1将其令牌“ X”放置在地图上的任何地方的两个位置时,他们总是赢。我不太确定如何解决此问题。任何帮助,将不胜感激。

这是我到目前为止所做的:

public class PlayTicTac { 

   private boolean wonDiagonal( int player)
   {
      boolean answer = false;

      if (
              ((board[0][0] + board[1][1] + board[2][2]) == player * 3) || ((board[0][2] + board[1][1] + board[2][0]) == player * 3)
         ) 
      {
          answer = true;
      }
      else {
          answer = false;
      }
      return answer;
   }


   private boolean wonStraightLines( int player)
   {
       boolean answer = false;

       if (
            ((board[0][0] + board[0][1] + board[0][2]) == player * 3) || 
            ((board[1][0] + board[1][1] + board[1][2]) == player * 3) ||  
            ((board[2][0] + board[2][1] + board[2][2]) == player * 3) ||
            ((board[0][0] + board[1][0] + board[2][0]) == player * 3) ||
            ((board[0][1] + board[1][1] + board[2][1]) == player * 3) ||
            ((board[0][2] + board[1][2] + board[2][2]) == player * 3)
          ) 
       {
           answer = true;   
       }
       else {
           answer = false;
       }
       return answer;
   }

   public boolean win(int player)
   {
       boolean answer = false;

       if (wonStraightLines(player) || wonDiagonal(player)) {
           answer = true;
       } 
       else {
           answer = false;
       }
       return answer;
   }  
}
java tic-tac-toe
1个回答
0
投票

我不确定您的播放器变量是什么,或者如何将标记放置在板上。在我的井字游戏代码中,我使用以下代码进行获胜检测(尽管它在Python中)。当玩家“ X”将一块放在Corordinates(0,1)我从board[0][1] = ''更改为board[0][1] == 'X'

def detect_win(board):
    for marker in ['X', 'O']:
        if (board[0][0] == board[0][1] == board[0][2] == marker) or 
           (board[1][0] == board[1][1] == board[1][2] == marker) or
           ............:
                return True
    return False
© www.soinside.com 2019 - 2024. All rights reserved.