Java Tic-Tac-Toe游戏抛出异常
我是编程新手,已经成功地制作了一个可以正常工作的井字游戏,但是我需要抛出一个异常,这样我就不能把一块放在另一块上面了。这是我所拥有的Java Tic-Tac-Toe游戏抛出异常,java,Java,我是编程新手,已经成功地制作了一个可以正常工作的井字游戏,但是我需要抛出一个异常,这样我就不能把一块放在另一块上面了。这是我所拥有的 /** Choose a cell for player has won. @param r the row number chose @param c the column number chose @param player the player who choose a position
/**
Choose a cell for player has won.
@param r the row number chose
@param c the column number chose
@param player the player who choose a position
@throws UnavailableCellException is the cell has been occupied (by either player)
*/
public void choose(int r, int c, int player){
this.board[r][c] = player;
try {
for(int i = 0; i < board.length; i ++) {
if (player == i && player == i + 1) {
throw new UnavailableCellException("That spot is taken!!");
}
}
} catch(UnavailableCellException e) {
System.out.println("That spot is taken!!");
}
}
我不知道如何达到当前和上一轮,使他们不平等 您可以使用一个简单的if语句来检查单元格是否被使用。根据结果设置单元格值或抛出UnavailableCellException
如果UnavailableCellException从RuntimeException扩展而来,您不需要在方法声明中使用Trows UnavailableCellException部分。您能不能检查一下这个.board[r][c]是否有一个值表明它已经播放过?我假设电路板是一个int[][],所以只要检查一下这个。电路板[r][c]!=0{throw…}您需要检查的应该是board[r][c]是否已经分配了玩家编号。这里不需要循环。如前所述,不需要循环。在执行此操作之前,只需检查此.board[r][c]的值。board[r][c]=player。换句话说,在为其赋值之前,请确保其为空。如果它不是空的,您可以抛出异常。
public void choose(int r, int c, int player) throws UnavailableCellException
{
if (this.board[r][c] == 0) { // assuming "0" means "free cell"
// valid, place it
this.board[r][c] = player;
} else {
// already used, throw exception
throw new UnavailableCellException("That spot is taken!!");
}
}