【C/C++编程学习】三子棋(初阶)

前言

好久没写博客了,但是并不是我不想写,而是真的没时间写。中间好大一部分学习记录都来不及写,索性就先跳过,先写这几天学的东西。
好了,废话不多说,接下来就开始今天的博客正文。

三子棋的需求

用C语言实现
玩完一局后可以继续玩
玩家和电脑轮流下棋

实现逻辑

  1. 打印菜单选择开始游戏或者退出游戏
  2. 开始游戏后创建棋盘并初始化
  3. 打印棋盘
  4. 玩家下棋(用‘*’表示玩家下的棋)
  5. 判定胜负关系(输,赢,平局,继续下棋,Q表示和棋)
  6. 电脑下棋(随机落子,‘#’表示)
  7. 判定胜负(若可以继续下棋则返回步骤四)
  8. 返回步骤2

多文件

多文件在公司开发项目中十分常见,一个项目由多人同时开发,每人负责一个或多个文件,最后交由一个人汇总。多文件开发的使用大大提高了项目开发的效率,而且可以使得源文件条理清晰,有利于项目的维护。
在这里,我把这个游戏划分成了三个文件,分别是test.c ,game.c以及game.h。test.c用来存放主函数,测试函数和菜单函数,game.c用来存放游戏实现的函数,game.h用来存放头文件和函数声明以及宏定义。

test.c中的实现逻辑

实现打印菜单并选择的需求

#include "game.h"
void menu()
{
   
	printf("##########################\n");
	printf("######   1. play  ########\n");
	printf("######   0. exit  ########\n");
	printf("##########################\n");
}
void test()
{
   
	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);


}

int main()
{
   
	test();

	return 0;
}

游戏主题实现的逻辑

void game()
{
   
	//数据存储到一个字符的二维数组中,玩家下棋是*,电脑下棋是#
	char board[ROW][COL] = {
    0 };//数组的内容应该是全部空格
	InitBoard(board, ROW, COL);//初始化棋盘
	//打印棋盘
	DisplayBoard(board, ROW, COL);
	//下棋
	char ret = 0;
	while (1)
	{
   
		player_move(board,ROW,COL);
		DisplayBoard(board, ROW, COL);
		ret = is_win(board, ROW, COL);
		if (ret != 'C')
		{
   
			break;
		
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

三木打三木

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

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

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

打赏作者

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

抵扣说明:

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

余额充值