《 三子棋》

一:需求与大致步骤

1.0 选择是否进入游戏
2.0 形成一个3*3 的棋盘
3.0 玩家下棋并且判断游戏是否结束
4.0 电脑随机下棋并且判断游戏是否结束

二:代码

1.0 选择是否进入游戏

int main()
{
	srand((unsigned int)time(NULL));
	int put = 0;
	do
	{
		nume();

		scanf("%d", &put);
		switch (put)
		{
		case 1:                                                         //这部分自己好好看看   do  while 
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("重新输入\n");
			break;
		}
	} while (put);
	system("pause");
	return 0;

}

在这里选择是否玩这个游戏;选择 1 ,进入游戏界面,也就是进入了game() 函数;
以下是game() 函数的代码

void game()
{
	char arr[POW][LOW] = { 0 };          //  POW  LOW  等于3
	int pow = POW - 1;                   //   2
	int low = LOW - 1;                   //   2
	iti_board(arr, pow, low);          // 初始化arr 数组
	display_board(arr, pow, low);       //打印一个棋盘
	while (1)
	{
		player(arr, pow, low);              //玩家下棋
		char a = judge(arr, pow, low);       //判断玩家是否赢了

		if (a == '*')
		{
			printf("玩家赢\n");
			break;
		}


		int b = is_full(arr, pow, low);       //判断棋盘是否满了,是否平局
		if (b == 1)
		{
			printf("平局\n");
			break;
		}


		computer(arr, pow, low);            //电脑下棋
		a = judge(arr, pow, low);             //判断电脑是否赢了




		if (a == '#')
		{
			printf("电脑赢\n");
			break;
		}




		b = is_full(arr, pow, low);                  //判断棋盘是否满了,是否平局
		if (b == 1)
		{
			printf("平局\n");
			break;
		}
}
}

以下是初始化arr 数组的代码


void iti_board(char arr[POW][LOW], int pow, int low)
{
	int i = 0;
	for (i = 0; i <= pow; i++)
	{
		int j = 0;
		for (j = 0; j <= low; j++)
		{
			arr[i][j] = ' ';
		}
	}
}

以下是打印棋盘的代码

void  display_board(char arr[POW][LOW], int pow, int low)
{
	int i = 0;
	for (i = 0; i <= pow; i++)
	{
		int j = 0;
		for (j = 0; j <= low; j++)
		{
			printf(" %c ", arr[i][j]);
			if (j < low)
				printf("|");
		}
		printf("\n");

		if (i < pow)
		{
			int j = 0;

			for (j = 0; j <= low; j++)
			{
				printf("___");
				if (j < low)
					printf("|");
			}
			printf("\n");
		}
	}
}

以下是玩家下棋的代码


void player(char arr[POW][LOW], int pow, int low)
{

	int x = 0;
	int y = 0;
	while (1)
	{
		printf("玩家请输入\n");
		scanf("%d %d", &x, &y);

		if (x >= 1 && x <= (pow + 1) && y >= 1 && y <= (low + 1) && arr[x - 1][y - 1] == ' ')
		{
			arr[x - 1][y - 1] = '*';
			display_board(arr, pow, low);
			break;
		}
		else
			printf("输入有误\n");
	}


}

以下是电脑下棋的代码

void computer(char arr[POW][LOW], int pow, int low)
{
	printf("电脑请输入\n");
	while (1)
	{
		int x = rand() % 3;
		int y = rand() % 3;
		if (arr[x][y] == ' ')
		{
			arr[x][y] = '#';
			display_board(arr, pow, low);

			break;
		}
	}
}

以下是判断输赢的代码

char judge(char arr[POW][LOW], int pow, int low)
{
	int i = 0;

	for (i = 0; i <= pow; i++)
	{
		if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][1] != ' ')
		{
			return arr[i][1];
		}
	}

	for (i = 0; i <= low; i++)
	{
		if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[i][1] != ' ')
		{
			return arr[1][i];
		}
	}


	if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[1][1] != ' ')
	{
		return arr[1][1];
	}


	if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[1][1] != ' ')
	{

		return arr[1][1];
	}
	return 0;

}

以下是判断是否平局的代码

int is_full(char arr[POW][LOW], int pow, int low)
{
	int i = 0;
	int count = 0;
	for (i = 0; i <= pow; i++)
	{
		int j = 0;
		for (j = 0; j <= low; j++)
		{
			if (arr[i][j] == ' ')
				count++;
		}
	}
	if (count == 0)
		return 1;
	else
		return 0;
}
标题基于SpringBoot的在线网络学习平台研究AI更换标题第1章引言介绍基于SpringBoot的在线网络学习平台的研究背景、意义、国内外现状、论文研究方法及创新点。1.1研究背景与意义阐述在线网络学习平台的重要性及其在教育领域的应用价值。1.2国内外研究现状分析当前国内外在线网络学习平台的发展状况及趋势。1.3研究方法与创新点说明本研究采用的方法论和在研究过程中的创新之处。第2章相关理论技术概述SpringBoot框架、在线教育理论及相关技术基础。2.1SpringBoot框架概述介绍SpringBoot框架的特点、优势及其在Web应用中的作用。2.2在线教育理论阐述在线教育的基本理念、教学模式及其与传统教育的区别。2.3相关技术基础介绍开发在线网络学习平台所需的关键技术,如前端技术、数据库技术等。第3章在线网络学习平台设计详细描述基于SpringBoot的在线网络学习平台的整体设计方案。3.1平台架构设计给出平台的整体架构图,并解释各个模块的功能及相互关系。3.2功能模块设计详细介绍平台的主要功能模块,如课程管理、用户管理、在线考试等。3.3数据库设计说明平台的数据库设计方案,包括数据表结构、数据关系等。第4章平台实现与测试阐述平台的实现过程及测试方法。4.1平台实现详细介绍平台的开发环境、开发工具及实现步骤。4.2功能测试对平台的主要功能进行测试,确保功能正常且符合预期要求。4.3性能测试对平台的性能进行测试,包括响应时间、并发用户数等指标。第5章平台应用与分析分析平台在实际应用中的效果及存在的问题,并提出改进建议。5.1平台应用效果介绍平台在实际教学中的应用情况,包括用户反馈、使用情况等。5.2存在问题及原因分析分析平台在运行过程中出现的问题及其原因,如技术瓶颈、用户体验等。5.3改进建议与措施针对存在的问题提出具体的改进建议和措施,以提高平台的性能和用户满意度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值