一个垃圾控制台井字棋游戏

#include<stdio.h>
int judgewin1(const char array[3][3])          //暴力算法  
{
	if(array[0][0]=='X' && array[0][1]=='X' && array[0][2]=='X')
	return 1;
	else if(array[1][0]=='X' && array[1][1]=='X' && array[1][2]=='X')
	return 1;
	else if(array[2][0]=='X' && array[2][1]=='X' && array[2][2]=='X')
	return 1;
	else if(array[0][0]=='X' && array[1][0]=='X' && array[2][0]=='X')
	return 1;
	else if(array[0][1]=='X' && array[1][1]=='X' && array[2][1]=='X')
	return 1;
	else if(array[0][2]=='X' && array[1][2]=='X' && array[2][2]=='X')
	return 1;
	else if(array[0][0]=='X' && array[1][1]=='X' && array[2][2]=='X')
	return 1;
	else if(array[0][2]=='X' && array[1][1]=='X' && array[2][0]=='X')
	return 1;
	else
	return 0;
}
int judgewin2(const char array[3][3])          
{
	if(array[0][0]=='O' && array[0][1]=='O' && array[0][2]=='O')
	return 1;
	else if(array[1][0]=='O' && array[1][1]=='O' && array[1][2]=='O')
	return 1;
	else if(array[2][0]=='O' && array[2][1]=='O' && array[2][2]=='O')
	return 1;
	else if(array[0][0]=='O' && array[1][0]=='O' && array[2][0]=='O')
	return 1;
	else if(array[0][1]=='O' && array[1][1]=='O' && array[2][1]=='O')
	return 1;
	else if(array[0][2]=='O' && array[1][2]=='O' && array[2][2]=='O')
	return 1;
	else if(array[0][0]=='O' && array[1][1]=='O' && array[2][2]=='O')
	return 1;
	else if(array[0][2]=='O' && array[1][1]=='O' && array[2][0]=='O')
	return 1;
	else
	return 0;
}
int judgeerror(char array[3][3],int a,int b)
{
	if(array[a-1][b-1]=='X' || array[a-1][b-1]=='O' || a>3 || a<1 || b>3 || b<1)
	{
		return 1;
	}
	else 
	{
		return 0;
	}
}
void dayin(char a[3][3])                            //打印函数 
{
	int i,j;
	for(i=0;i<3;i++)
		{
			for(j=0;j<3;j++)
			{
				printf("%c",a[i][j]);
			}
			printf("\n");
		}
		
}
int main()
{
	int i,j;                                        //循环变量
	int a,b;                                        //用来存储下棋的坐标
	char map[3][3]={{' ', ' ',' '},{' ',' ',' '},{' ',' ',' '}};
	printf("井字棋游戏开始啦"); 
	dayin(map);
	for(i=0;i<9;i++)
	{
		if(i%2==0)
		{ 
			out1:
			printf("轮到玩家一下棋,请输入落子的坐标且用空格隔开");
			scanf("%d %d",&a,&b);
			if(judgeerror(map,a,b)==1)
			{
				printf("你下错啦小笨蛋!\n");
				goto out1; 
			}
			map[a-1][b-1]='X';
			dayin(map);	
		}
		else
		{
			out2:
			printf("轮到玩家二下棋,请输入落子的坐标且用空格隔开");
			scanf("%d %d",&a,&b);
			if(judgeerror(map,a,b)==1)
			{
				printf("你下错啦小笨蛋!\n");
				goto out2;
			}
			map[a-1][b-1]='O';
			dayin(map);
		}
		if(judgewin1(map)==1)
		{
			printf("玩家一赢了");
			break;
		}
		if(judgewin2(map)==1)
		{
			printf("玩家二赢了"); 
			break;
		}
		
	} 
	if(i==9)
		printf("这局平局!\n");
	return 0;	
}

写的跟屎一样,我写博客的目的是为了保存我年少时期写下的烂代码,让将来的自己嘲笑

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值