井字棋判定是否获胜

井字棋获胜判断算法
该博客介绍了一种用于井字棋游戏的获胜条件判断算法,主要针对棋盘上棋子的排列情况,通过检查横、竖、斜方向上的连续棋子来确定当前玩家是否已经获胜。文章提供了JAVA实现代码。

井字棋判定是否获胜

题目

给定一个二维数组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;  //即没有获胜也没有失败,则为平局
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值