题目
给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出
代码_JAVA
import java.util.*;
/*
给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,
0表示没有棋子,-1代表是对方玩家的棋子。
当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出
*/
public class Board {
public boolean checkWon(int[][] board) {
int sum1=0,sum2=0,sum3=0,sum4=0; //分别记录行、列、左对角线、右对角线的棋子之和
for(int i=0;i<=2;i++){
sum3+=board[i][i];
sum4+=board[i][2-i];
for(int j=0;j<=2;j++){
sum1+=board[i][j];
sum2+=board[j][i];
if(sum1==3||sum2==3||sum3==3||sum4==3)
return true; //如果行、列、左对角线、右对角线的棋子之和有一个等于3,则表示获胜
if(sum1==-3|sum2==-3||sum3==-3||sum4==-3)
return false; //如果行、列、左对角线、右对角线的棋子之和有一个等于-3,则表示失败
}
}
return false; //即没有获胜也没有失败,则为平局
}
}
井字棋获胜判断算法
该博客介绍了一种用于井字棋游戏的获胜条件判断算法,主要针对棋盘上棋子的排列情况,通过检查横、竖、斜方向上的连续棋子来确定当前玩家是否已经获胜。文章提供了JAVA实现代码。
2075

被折叠的 条评论
为什么被折叠?



