C语言实现三子棋

本文介绍如何使用C语言编写三子棋游戏。通过拆分为test.c、game.c和game.h三个文件,分别实现游戏逻辑、游戏内容和声明。在test.c中,包括游戏菜单和调用game.c中的游戏功能,如初始化棋盘、打印棋盘、双方下棋及判断输赢。在game.c中,详细阐述了游戏的具体实现,包括玩家和电脑的下棋规则。
摘要由CSDN通过智能技术生成


前言

对于新手,前面学习了分支和循环语句、数组、函数的内容
我们可以自主编写一些有趣的游戏
本次我将编写一个n子棋游戏

因为编写游戏是一个比较大的工程,我们可以将任务拆分成
三个文件—>两个源文件和一个头文件
test.c(用来测试游戏的逻辑)
game.c(用来实现游戏代码)
game.h(用来实现游戏代码的声明,如:函数声明和符号定义)


1、test.c

1.1、游戏菜单menu()
1.2、游戏内容game()——>内容比较丰富,具体内容在game.c完成,test.c负责函数的调用和测试

先预览一遍游戏的测试源文件

在这里插入代码片#define _CRT_SECURE_NO_WARNINGS
//这个文件用来测试游戏的逻辑


#include "game.h"
void menu()
{
   
	printf("*********************************************************\n");
	printf("**********************    1、play    ********************\n");
	printf("**********************    0、exit    ********************\n");
	printf("*********************************************************\n");
}
void game()
{
   
	char board[ROW][COL] = {
    0 };
	InitBoard(board,ROW, COL);//初始化棋盘的功能
	DisplayBoard(board, ROW,COL);//打印棋盘,本质上是打印数组
	//开始下棋
	char ret = 0;
	while (1)
	{
   
		PlayerMove(board, ROW, COL);
		ret = IsWin(board, ROW, COL);
		if (ret != 'C')
		{
   
			break;
		}
		DisplayBoard(board, ROW, COL);
		ComputerMove(board, ROW, COL);
		ret = IsWin(board, ROW, COL);
		if (ret != 'C')
		{
   
			break;
		}
		DisplayBoard(board, ROW, COL);
	}
	if (ret == '*')
	{
   
		printf("玩家赢\n");
	}
	else if (ret == '#')
	{
   
		printf("电脑赢\n");
	}
	else 
	{
   
		printf("平局\n");
	}
	DisplayBoard(board, ROW, COL);
}
int main()
{
   
	srand((unsigned int)time(NULL));//设置随机数的生成起点,
	int input = 0;
	do
	{
   
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
   
		case 1:
			game();//确定玩这个游戏之后,在这里封装游戏
			//printf("三子棋\n");
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误\n");
			break;
		}
	} while (input);
	return 0;
}```

##  1.1、游戏菜单

> 有关于游戏的呈现:第一次进游戏的时候,提供play和exit的选项
> 第一次游戏结束之后可以选择exit进行游戏的退出。

```c
void menu()
{
   
	printf("*********************************************************\n");
	printf("**********************    1、play    ********************\n");
	printf("**********************    0、exit    ********************\n");
	printf("*********************************************************\n");
}
int main()
{
   
	srand((unsigned int)time(NULL));//设置随机数的生成起点,
	int input = 0;
	do
	{
   
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
   
		case 1:
			game();
			//确定玩这个游戏之后,在这个case里封装游戏
			printf("三子棋\n");
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误\n");
			
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱吃鱼的怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值