我为“X”和“o”游戏编写代码,现在一切正常,但我想优化我的代码并使我的函数更短,例如
我设计了游戏,让玩家与计算机对抗,计算机的优先级是首先获胜,然后阻止对手,最后填充空的单元格 所以我写了一个列的函数,行的函数和对角线的函数,并使用了很多条件 我想知道您是否知道如何通过使用循环或附加函数来缩短代码 例如,theat 函数检查计算机是否可以连续赢 3 场
public static boolean ComuterrowWin(char [][] board){
if((board[0][0]=='O' && board[0][1]=='O') && board[0][2]!='X'){
board[0][2]='O'; return true;}
else if((board[0][1]=='O' && board[0][2]=='O') && board[0][0]!='X'){
board[0][0]='O'; return true;}
else if((board[0][0]=='O' && board[0][2]=='O') && board[0][1]!='X'){
board[0][1]='O'; return true;}
else if((board[1][0]=='O' && board[1][1]=='O') && board[1][2]!='X'){
board[1][2]='O'; return true;}
else if((board[1][1]=='O' && board[1][2]=='O' && board[1][0]!='X')){
board[1][0]='O'; return true;}
else if((board[1][0]=='O' && board[1][2]=='O') && board[1][1]!='X'){
board[1][1]='O'; return true;}
else if((board[2][0]=='O' && board[2][1]=='O') && board[2][2]!='X'){
board[2][2]='O'; return true;}
else if((board[2][1]=='O' && board[2][2]=='O') && board[2][0]!='X'){
board[2][0]='O'; return true;}
else if((board[2][0]=='O' && board[2][2]=='O') && board[2][1]!='X'){
board[2][1]='O'; return true;}
return false;
}
最佳答案
如果你想保留数据结构,可以试试这个。只需将至少行组织成一个循环即可:
public static boolean ComuterrowWin(char [][] board){
for (int row=0; row<=2; row++) {
if((board[row][0]=='O' && board[row][1]=='O') && board[row][2]!='X'){
board[row][2]='O'; return true;}
if((board[row][1]=='O' && board[row][2]=='O') && board[row][0]!='X'){
board[row][0]='O'; return true;}
if((board[row][0]=='O' && board[row][2]=='O') && board[row][1]!='X'){
board[row][1]='O'; return true;}
}
return false;
}
关于java - 如何在棋盘游戏中使用循环编写更短的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43942176/