import java.util.Scanner;
public class app {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
final int size =3;
int[][] board = new int [size][size];
boolean gotresult = false;
int num0fx=0;
int num0fo=0;
//读入矩阵
for(int i =0;i<board.length;i++){
for(int j=0;j<board[i].length;j++){
board[i][j]=in.nextInt();
}
}
//检查行
for(int i =0;i<board.length;i++){
num0fo=0;
num0fx=0;
for(int j=0;j<board.length;j++){
if(board[i][j]==1){
num0fx++;
}
else{
num0fo++;
}
}
if(num0fo==size||num0fx==size){
gotresult=true;
break;
}
}
//检查列
if ( !gotresult ) {
for ( int i=0; i<size; i++ ) {
num0fo = 0;
num0fx = 0;
for ( int j=0; i<size; i++ ) {
if ( board[j][i] == 1 ) {
num0fx ++;
} else {
num0fo ++;
}
}
if ( num0fo == size || num0fx == size ) {
gotresult = true;
break;
}
}
}
//检查对角线
if ( !gotresult ) {
num0fx = 0;
num0fo = 0;
for ( int i=0; i<size; i++ ) {
if ( board[i][i] == 1 ) { //对角线一般为【0】【0】 【1】【1】 这些
num0fx ++;
} else {
num0fo ++;
}
}
if ( num0fx == size || num0fo == size ) {
gotresult = true;
}
}
//检查反对角线
if ( !gotresult ) {
num0fo = 0;
num0fx = 0;
for ( int i=0; i<size; i++ ) {
if ( board[i][size-i-1] == 1 ) { //比如说【2】【0】 此时的i为2 那么 size-i- 就为0 ;再比说【0】【2】 此时i为0 那么j=size-i-1 就为2
num0fx ++;
} else {
num0fo ++;
}
}
if ( num0fo == size || num0fx == size ) {
gotresult = true;
}
}
//输出结果
if ( gotresult ) {
if ( num0fx == size ) {
System.out.println("X WIN");
} else {
System.out.println("O WIN");
}
}
}
}
翁恺java tic-tac-toe 答案
最新推荐文章于 2022-03-31 15:19:00 发布