三子棋游戏的思路分享

三子棋游戏的思路分享

今天,我很高兴和大家分享一下我练习三子棋的感受与一些思路。

  1. 首先我们先建一个工程,这次与往常不一样,为了把代码细分清楚,建立一个头文件(game.h)(用于一些头文件的包含,以及一些函数的声明),再建立两个源文件(game.c和test.c)(一个是游戏代码即一些函数部分,一个是测试部分主要是一些外部框架)。
  2. 然后先搭建一个框架,如下图
    在这里插入图片描述
    这个菜单部分我们可以通过一个menu()来实现,代码如下:
void menu()
{
   
	printf("******************\n");
	printf("***   1.play   ***\n");
	printf("***   0.exit   ***\n");
	printf("******************\n");
}

此外,我们通过输入的数字来进行参与游戏,是1则参与游戏,是0则结束游戏,如果输入其他数字则打印输入错误,重新输入。大家看到这个根据输入的数字来进行不同的操作,有没有想到switch语句呢?我们就通过这个来实现它,test.c源文件中的代码如下:

int main()
{
   
	int input = 0;
	do
	{
   
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
   
		case 1:
			game();//三子棋的游戏
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,重新选择!\n");
			break;
		}
	} while (input);
	return 0;
}

让我们先试一下,看看能不能实现这个功能。
在这里插入图片描述

大家看到这个是不是还是觉得很简单呢,让我们继续挖深吧!
3.现在就是game()内部这个大工程了。
(1)因为我们设计的是三子棋,所以我们看成是一个字符数组,三行三列,因为这是棋盘,我们直接把数组名写成board,board[ROW][COL],
我们在这里不直接将数组的行列数直接写出来,可以进行宏定义,这样有助于兼容性,如果下次做五子棋或者其他形式,可以直接在宏定义中修改一下信息。我们在game.h头文件中的代码如下:

#define ROW 3
#define COL 3

我们只需要在各个源文件中加上

#include "game.h"

即可。
(2)我们对棋盘数组进行初始化,令每一位都是空格。在game.h我们写出一个函数InitBoard()声明

//初始化棋盘
void InitBoard(char board[ROW][COL], int row, int col);

然后我们就可以在game.c中实现这个函数了。

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

(3)初始化棋盘后,我们先打印一下棋盘,和上面的初始化棋盘类似,先声明一下

//打印棋盘
void DisplayBoard(char board[ROW][</
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值