//8.9第一份让我觉得比较成功的东西。虽然程序的健壮性就像一坨屎。。。
import java.util.*;
public class JingGame
{
static Scanner input = new Scanner(System.in);
static int count=0;
public static void main(String[] args)
{
char[][] chess ={
{' ',' ',' '},
{' ',' ',' '},
{' ',' ',' '},
};
run(chess);
}
public static boolean isOver(char[][] chess)
{
if(count==9)
{
return true;
}
for(int row=0;row<3;row++)
{
if(chess[row][0]!=' '&&chess[row][1]!=' '&&chess[row][2]!=' '&&chess[row][0]==chess[row][1]&&chess[row][1]==chess[row][2])
return true;
}
for(int col=0;col<3;col++)
{
if(chess[0][col]!=' '&&chess[1][col]!=' '&&chess[2][col]!=' '&&chess[0][col]==chess[1][col]&&chess[1][col]==chess[2][col])
return true;
}
if(chess[0][0]!=' '&&chess[1][1]!=' '&&chess[2][2]!=' '&&chess[0][0]==chess[1][1]&&chess[1][1]==chess[2][2])
return true;
if(chess[0][2]!=' '&&chess[1][1]!=' '&&chess[2][0]!=' '&&chess[2][0]==chess[1][1]&&chess[1][1]==chess[0][2])
return true;
return false;
}
public static void print(char[][] chess)
{
System.out.println("-------");
for(int i=0;i<3;i++)
{
System.out.print("|");
for(int j=0;j<3;j++)
{
System.out.print(chess[i][j]+"|");
}
System.out.println();
System.out.println("-------");
}
}
public static void setChess(char[][] chess)
{
System.out.print("Enter a row(0.1.2): ");
int row = input.nextInt();
System.out.print("Enter a col(0.1.2): ");
int col = input.nextInt();
if(count%2==0)
chess[row][col] = 'O';
if(count%2==1)
chess[row][col] = 'X';
count++;
}
public static void run(char[][] chess)
{
while(true)
{
print(chess);
setChess(chess);
if(isOver(chess)&&count%2==1)
{
System.out.println("O win");
return;
}
if(isOver(chess)&&count%2==0)
{
System.out.println("X win");
return;
}
if(isOver(chess)&&count==9)
{
System.out.println("No win No loss");
return;
}
}
}
}
《java语言程序设计(基础篇)》(机械工业出版社)第十版习题8.9