欢迎来到小猪的博客,希望这期博客能帮到你!
前言
如果有哪里解析错误或者你有哪里不太理解的都可以私聊我哈!
一,题目
给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。
二,解析
井字棋有四种情况表示当前玩家获胜,1代表当前玩家棋子 1. 行全为1, 即行的和为3 2. 列全为1, 列的和为3 2. 主对角全为1, 对角和为3 副对角全为1, 对角和为3 3. 如果扩展为N*N的话,判断和是否等于N,下面代码适用任何情况。
三,代码
public class Main2 {
public boolean checkWon(int[][] board) {
int N = board.length;
int i=0;
int j=0;
int sum=0;
for (i= 0; i < N; i++) {
sum=0;
for (j = 0;j<N ;j++){
sum+=board[i][j];
}
if (sum==N){
return true;
}
}
for (i =0; i<N;i++){
sum=0;
for (j =0;j<N ;j++){
sum+=board[j][i];
}
if (sum==N){
return true;
}
}
sum=0;
for (i=0;i<N;i++){
sum+=board[i][i];
}
if (sum==N){
return true;
}
sum=0;
for (i=0;i<N;i++){
sum+=board[i][N-1-i];
}
if (sum==N){
return true;
}
return false;
}
}
以上就是今天要分享的题目,希望对你有帮助!
别忘了要关注小猪哦!
小猪带你一起学习~
咱们下期再见啦!