【二维数组】判断井字棋玩家是否获胜

题目描述

给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。

测试样例:

[[1,0,1],[1,-1,-1],[1,-1,0]]

返回:true

题目分析

井字棋游戏规则,就是判断行、列以及对角线上的棋子是否全部相同

根据给定的二维数组,由于井字棋行和列相等,并且当前玩家的棋子为1, 只需计算某一行或者某一列的和为二维数组的行数,再判断两条对角线的和,如果有一个条件满足即玩家获胜。

在计算时,要注意每次统计每一行每一列,对角线的和时注意将sum置0,不然会被上次的计算结果干扰导致程序出错。

代码如下:

import java.util.*;public class Board {public boolean checkWon(int[][] board) {//这里首先判断此二维数组的两斜边是否被玩家相连if(board[0][0] + board[1][1] + board[2][2] == 3 || board[0][2] + board[1][1] + board[2][0] == 3) {return true;}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部