C语言必会小项目三子棋(附带具体思路说明)

1. 前言

  三字棋是我们小学初中经常玩的一种小游戏,现在提起三子棋,它代表的不仅仅只是一种游戏,代表的也是我,我们回不去的无忧无虑的美好时光。让自己情窦初开女孩,还记得她的面庞吗?还记得自己当年青涩的模样吗?

  今天我们通过C语言来实现一个能够勾起我们美好回忆的小游戏。具体规则如下图所示。

2. 具体分析

  由于三子棋的实现对于初学者来说也是一个不小的挑战,相对于平时的训练来说,的确工作量不小,因此为了程序的简洁明了。在这里我们将采用模块化编程的方式来实现三子棋。在主程序的test.c的基础上增加一个game.c 和 game.h文件。

game.c的主要作用是游戏功能的具体实现。

game.h的主要作用是声明函数

3. 代码实现

3.1 主函数的实现

  当我们进行游戏时应当先跳出游戏菜单,因此我们需要制作一个简易的游戏菜单。

void menu()
{
	printf("**************************\n");
	printf("********  1.Play  ********\n");
	printf("********  0.exit  ********\n");
	printf("**************************\n");

}

我们主要用do while来实现主函数的循环,并用switch函数来选择是需要进行游戏还是退出游戏实现如下所示。

int main()
{
	int input = 0;
	
	do
	{
		menu();
		printf("请输入->");
		scanf("%d", &input);

		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("游戏结束\n");
			break;
		default:
			printf("输入数据非法请重新输入");
			break;
		}

	} while (input);

	return 0;
}

3.2 游戏函数的实现

  我们三子棋游戏的实现重要分为几个重要部分1. 打印棋盘。2. 玩家下棋。3.电脑下棋。4.判断是否游戏结束。

3.2.1 打印棋盘函数 

  我们棋盘是一个3*3的棋盘,因此我们考虑用一个三行三列的二维数组来充当棋盘。

char Board[ROW][COL]

  在game.h中定义ROW 和 COL

#define ROW 3
#define COL 3

  创建好数组后进行棋盘的初始化。在game.c中编写初始化程序并在game.h中声明。

函数声明

void InitBoard(char Board[ROW][COL], int row, int col);

函数实现

void InitBoard(char Board[ROW][COL], int row, int col )
{
	int i = 0;
	for (i = 0; i < row; i++)
	{
		int j = 0;
		for (j = 0; j < col; j++)
		{
			Board[i][j] = ' ';
		}
	}

}

3.2.2 打印棋盘

  我们期望中的棋盘是长成这样子。观察棋盘我们初步的思路就是通过两个 for循环来进行打印,先打印出行,再打印列。

  

  我们可以这样考虑拿第一行的棋盘举例就是第一行先打印  _*_ 其中_代表空格,然后紧接着输出一个 |  然后输出三个这样的第一行,之后换行先打印---然后再打印 |。如下图所示

这样打印我们会发现棋盘第一行会多出现两个空格。我们可以通过一个if语句来取消掉这个多出来的 |,这样就可以完成每一行的打印了。具体实现如下所示。

void DispalyBoard(char Board[ROW][COL], int ro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值