TicTacToe问题

时间:2016-04-25 19:00:35

标签: java multidimensional-array do-while

我被我的tictactoe问题困住了。定义一个名为TicTacToe的calss。 TicTacToe类型的对象是TicTacToe的单个游戏。将游戏板存储为具有三行三列的基本类型char的单个2d阵列。包括添加移动,显示棋盘,告诉轮到谁,告诉是否有获胜者,说出获胜者是谁以及重新开始游戏的方法。为该类编写一个主要方法,允许两个玩家依次在同一个键盘上输入他们的动作。

我已经编写了一些我的方法,并且一直在测试。当我测试我的代码时,我要么让它放置一个标记,但也打印出无效的条目,否则它将不断循环请求移动然后说空间被占用。我无法弄清楚如何解决这个问题。我确定它与我的do while循环以及isEmpty和notValid的布尔方法有关。此外,我仍然坚持如何为每位球员的胜利实施一个计数器。

这是我的代码:

    public void addMove()
    {
        checkTurn();
        int row, col;
        do
        {
        System.out.println("Enter a row (1-3): ");
        row = in.nextInt() - 1; //Array index starts at 0.
        System.out.println("Enter a column (1-3): ");
        col = in.nextInt() - 1;

        if (row>=0 && row<ROWS)
            if(col>=0 && col<COLUMNS)
                if (playerX)
                    {
                        gameBoard[row][col] = player1Move;
                    }
                    else 
                    {
                        gameBoard[row][col] = player2Move;
                    }
         checkForWin();
         changePlayer();
        }while (notValid(row,col));

            System.out.println("Invaild Entry.");
            //System.exit(0); 

        //checkForWin();
        //changePlayer();
    }
    public boolean notValid(int row, int col)
    {
        if (row < 0 || row > ROWS )
            return true;
        if (col < 0 || col > COLUMNS)
            return true;
        if (!isEmpty(row,col))
            return true;
        return false;
    }
    public boolean isEmpty(int row, int col)
    {
        if(gameBoard[row][col]==' ')
            return true;
        else
        {
            System.out.println("Space is already occupied.");
            return false;
        }
    }
}   

这是我的测试课程:

public class TicTacToe
{

    public static void main(String[] args) 
    {
    TicTacToeClass game = new TicTacToeClass();
    game.addMove();
    game.printBoard();


    }

}

1 个答案:

答案 0 :(得分:1)

我会让你处理多个游戏部分。这会玩一个游戏然后退出。

  def new
    @profile = current_user.build_profile
  end