能够实时输出,不允许重复落子,有判断机制,使用坐标下棋。
1 package 井字游戏; 2 import java.util.*; 3 4 public class mine { 5 public static void main(String[] args) { 6 char[][] array = {{‘ ‘,‘ ‘,‘ ‘},{‘ ‘,‘ ‘,‘ ‘},{‘ ‘,‘ ‘,‘ ‘}}; 7 Scanner input = new Scanner(System.in); 8 int x,y; 9 output(array); 10 for(int i=0;i<9;i++) { 11 System.out.print("请输入棋子的坐标x和y:"); 12 do { 13 x=input.nextInt(); 14 y=input.nextInt(); 15 }while(x<1||x>3||y<1||y>3); 16 x--;y--; 17 if(array[x][y]!=‘ ‘) { 18 System.out.println("已经有棋子了,请重新选择!!"); 19 do { 20 x=input.nextInt(); 21 y=input.nextInt(); 22 }while(x<1||x>3||y<1||y>3); 23 x--;y--; 24 } 25 if(i%2==0) 26 array[x][y]=‘x‘; 27 else 28 array[x][y]=‘o‘; 29 output(array); 30 switch(judge(array)) { 31 case 1:System.out.println("“x”棋子选手已经获胜!");i=9;break; 32 case 2:System.out.println("“o”棋子选手已经获胜!");i=9;break; 33 } 34 if(i!=9) { 35 if(i%2==0) 36 System.out.print("下一步是“o”棋子:"); 37 else 38 System.out.print("下一步是“x”棋子:"); 39 } 40 } 41 } 42 static void output(char[][] array) { 43 System.out.println("-------------"); 44 System.out.printf("| %c | %c | %c |\n", array[0][0],array[0][1],array[0][2]); 45 System.out.println("-------------"); 46 System.out.printf("| %c | %c | %c |\n", array[1][0],array[1][1],array[1][2]); 47 System.out.println("-------------"); 48 System.out.printf("| %c | %c | %c |\n", array[2][0],array[2][1],array[2][2]); 49 System.out.println("-------------"); 50 } 51 static int judge(char[][] array) { 52 for(int i=0;i<3;i++) { 53 if(array[i][0]==array[i][1]&&array[i][1]==array[i][2]&&array[i][2]==‘x‘) 54 return 1; 55 if(array[0][i]==array[1][i]&&array[1][i]==array[2][i]&&array[2][i]==‘x‘) 56 return 1; 57 } 58 if(array[0][0]==array[1][1]&&array[1][1]==array[2][2]&&array[2][2]==‘x‘) 59 return 1; 60 if(array[0][2]==array[1][1]&&array[1][1]==array[2][0]&&array[2][0]==‘x‘) 61 return 1; 62 for(int i=0;i<3;i++) { 63 if(array[i][0]==array[i][1]&&array[i][1]==array[i][2]&&array[i][2]==‘o‘) 64 return 2; 65 if(array[0][i]==array[1][i]&&array[1][i]==array[2][i]&&array[2][i]==‘o‘) 66 return 2; 67 } 68 if(array[0][0]==array[1][1]&&array[1][1]==array[2][2]&&array[2][2]==‘o‘) 69 return 2; 70 if(array[0][2]==array[1][1]&&array[1][1]==array[2][0]&&array[2][0]==‘o‘) 71 return 2; 72 return 0; 73 } 74 75 }
原文:https://www.cnblogs.com/ncoheart/p/8981286.html