二维数组tip-tac-toe游戏

来源:互联网 发布:怎样经营淘宝网店 编辑:程序博客网 时间:2024/06/05 15:38

  • 读入一个3*3的矩阵,矩阵中的数字为1表示该位置上有一个X,为0表示为O
  • 程序判断这个矩阵中是否有获胜的一方,输出表示获胜一方的字符X或O,或输出无人获胜
    package welcome;import java.util.Scanner;public class 二维数组tip_tac_toe {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);final int SIZE = 3;     //程序的可扩展性***int [][] board =  new int[SIZE][SIZE];boolean gotresult = false;int numOfX = 0;int numOfO = 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++){numOfX = 0;numOfO = 0;for(int j = 0; j < board[i].length; j++){if(board[i][j] == 1)numOfX++;elsenumOfO++;}if(numOfX== SIZE || numOfO== SIZE){gotresult = true;break;}}//检查列if(!gotresult){for(int i = 0; i < board.length; i++){numOfX = 0;numOfO = 0;for(int j = 0; j < board[i].length; j++){if(board[j][i] == 1)numOfX++;elsenumOfO++;}if(numOfX== SIZE || numOfO== SIZE){gotresult = true;break;}}}        //检查对角线if(!gotresult){numOfX = 0;numOfO = 0;for(int i = 0; i < board.length; i++){if(board[i][i] == 1)numOfX++;elsenumOfO++;}if(numOfX== SIZE || numOfO== SIZE){gotresult = true;}}//检查反对角线if(!gotresult){numOfX = 0;numOfO = 0;for(int i = 0; i < board.length; i++){if(board[i][SIZE-i-1] == 1)numOfX++;elsenumOfO++;}if(numOfX== SIZE || numOfO== SIZE){gotresult = true;}}if(gotresult){if(numOfX == SIZE)System.out.println("X赢了");if(numOfO == SIZE)System.out.println("O赢了");}elseSystem.out.println("无人获胜");}

原创粉丝点击