我被我的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();
}
}
答案 0 :(得分:1)
我会让你处理多个游戏部分。这会玩一个游戏然后退出。
def new
@profile = current_user.build_profile
end