用数字三代表圆圈,数字4代表叉,创建for循环,循环最多次数为9次。
当玩家输入了所对应的数字以后,先开始检查对角线是否有成立的,然后在检查每行每列是否成立
将数字3的每一行中,3的个数记在isfoh中,当isfoh等于3时,则代表数字三成了一行,此时输出结果,然后跳出整个循环,列与对角线的判别方法亦是如此
完整代码如下
package java001;
import java.util.Scanner;
public class One {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
int[][] a=new int[3][3];
int isfoh=0,isfol=0,isfo1=0,isfo2=0,isfxh=0,isfxl=0,isfx1=0,isfx2=0;
int i,j,k;
ON:
for (k = 0; k < 9; k++) {
System.out.println("请输入行 列 及数字:");
i=in.nextInt();j=in.nextInt();
a[i][j]=in.nextInt();
if(i==j) {
if(a[i][j]==3) {
isfo1++;
}
if(a[i][j]==4) {
isfx1++;
}
}
if(i+j==2&&i!=j){
if(a[i][j]==3) {
isfo2++;
}
if(a[i][j]==4) {
isfx2++;
}
}
if(isfo1==3||isfo2==3) {
System.out.println("3获胜");
break ON;
}
if(isfx1==3||isfx2==3) {
System.out.println("4获胜");
break ON;
}
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
if(a[i][j]==3) {
isfoh++;
}
if(a[i][j]==4) {
isfxh++;
}
if(a[j][i]==3) {
isfol++;
}
if(a[j][i]==4) {
isfxl++;
}
if(isfoh==3||isfol==3) {
System.out.println("3获胜");
break ON;
}
if(isfxh==3||isfxl==3) {
System.out.println("4获胜");
break ON;
}
}
isfoh=0;isfol=0;isfxh=0;isfxl=0;
}
}
in.close();
}
}
运行结果如下: