井字游戏(还不是太完善,程序没有健壮性可言,日后修改)

//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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值