如何制作三子棋小游戏
首先,一个游戏的制作,必须由大化小,分步完成。
当我们想要制作三子棋小游戏时,必须先搞清楚这个小游戏的逻辑和原理。
三子棋是黑白棋的一种。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。但是,有很多时候会出现和棋的情况。
因此,怎么来实现这个游戏呢?
显而易见,制作游戏我们需要引用许多库函数,定义许多函数,每个部分的代码实现不同的功能。如果将所有代码写在一个文件中,首先,在我们想知道用了哪些函数,每部分函数对应什么样的头文件时可能就会出现不便的情况。为了减少这些麻烦,我们选择将整个代码规范化,条理化。
因此,我们来进行创建:
- 一个专门存放所有函数声明的文件,将其命名为game.h(头文件)
- 一个来编写游戏的实现逻辑,将其命名为game.c(源文件)
- 一个来编写游戏的测试逻辑,将其命名为test.c(源文件)
好的,现在,就开始来编写程序。
我们的思路为
- 游戏菜单
- 游戏主体函数
- 游戏的实现
游戏的菜单
首先,进入一个游戏,我们首先看到的就是游戏主界面,也就是菜单,一般来说,菜单应该有以下几个选项:
- 开始游戏
- 退出游戏
- 非法输入
因此,我们就需要创建这样一个menu()函数来实现这样的功能,代码如下:
运行结果如下:
当我们选择进入游戏,也就进入了游戏主要代码的编写。
游戏主体函数
- 棋盘初始化
- 棋盘展现
- 玩家下棋
- 电脑自动下棋
- 判断胜负
1.棋盘初始化
首先,我们需要创建一个棋盘,由于棋盘是九宫格,因此我们使用数组来进行创建(由于这里是较为简单的三子棋,因此我们创建数组时可以直接来打印出3*3的数组,但由于我们想让这个游戏的适用面更加广泛,改动时较为容易,我们使用一个函数可以输入自己想要打印的棋盘的大小)
在test.c里创建如下:
char board[ROW][COL] = { 0 };//数组的内容应该是全部空格
InitBoard(board, ROW, COL);//初始化棋牌
在game.c里创建如下:
2.棋盘展现
我们将创建好的棋盘打印出来:
在test.c创建:
DisplayBoard(board, ROW, COL);//打印棋盘
在game.c创建:
3.玩家下棋
为了完成这一功能,我们需要注意以下几点:
- 接收玩家所输入的坐标
- 判断玩家所输入的坐标所在是否已有落子
- 将玩家的棋子落入对应地
代码实现:
在test.c创建:
在game.c创建:
运行结果如下:
4.电脑下棋
这里,由于游戏实现的智能化水平有限,电脑在下棋时,采用随机下棋的方式,因此坐标随机不确定,那么,如何来创建随机坐标呢?我们使用一个称为时间戳的函数。
我们需要调用以下头文件:
<stdlib.h>
<time.h>
同时,我们还需要使用:
srand((unsigned int)time(NULL)); 来进行初始化
x = rand() % row;
y = rand() % col; 来进行创建坐标的随机数
当然,与玩家下棋相一致,我们也需要判断电脑所下的坐标是否被占用,以及将棋子落下。
代码如下,我们在test.c里创建:
同时,在game.c里创建:
运行结果如下:
5.判断胜负
在我们下棋的过程中,由于规则的特殊性,我们需要在玩家和电脑下的每一步后都对比赛的结果进行判断,确保程序的逻辑正确性。
在这里,我们使用Is_win()函数来实现这一功能。
在这一函数中,我们需要实现以下几个逻辑:
要返回四种不同的状态
玩家赢 --> 返回'*'
电脑赢 --> 返回'#'
平局 --> 返回'Q'
游戏继续 --> 返回'C'
首先我们要确立判断函数再整个游戏主体中的位置和作用
我们在test,c中创建的逻辑如下:
同时,我们在实现Is_win()这一函数时,需要注意以下几点:
- 判断行
- 判断列
- 判断对角线
- 判断棋盘是否已经放满 -- > 确认游戏是否继续(需要一个Is_full()函数来实现这一功能
我们在game.c里创建is_full()的实现逻辑如下:
接下来是is_win()函数的实现:
注:这里所有创建的函数,我们都会在game.h 里进行声明
游戏的实现
当我们进行完上述步骤买就可以运行代码了:
到这里,三子棋这个小游戏的代码就实现完成了,快去试试吧!
如何制作三子棋小游戏相关推荐
- 三子棋小游戏(超详细)
目录 一.实现三子棋游戏的基本逻辑 二.具体的函数实现 1. 菜单函数 2. 棋盘的实现 2.1 棋盘的初始化 2.2 棋盘的打印 3. 玩家下棋 4. 电脑下棋 5.判断棋盘状态 三. 三个文件 3 ...
- 【牛客刷题】上手用C语言写一个三子棋小游戏超详解哦(电脑优化)
作者:[南航科院小张 南航科院小张的博客 专栏:从c语言的入门到进阶 学习知识不只是要懂,还要会用:想要找到好的工作,这里给大家介绍一件可以斩获诸多大厂offer的利器–牛客网 点击免费注册和我一起开 ...
- 使用C语言编写三子棋小游戏
使用C语言编写三子棋小游戏: 首先进行分析: 1.需要将游戏实现分为三个部分:头文件,函数功能实现,游戏组合测试. 2.游戏可以循环进行,不必多次打开,可采用 do...while循环结构. 3.游戏 ...
- C语言实现三子棋小游戏(编程思路以及代码详解)
目录 前言 一.三子棋游戏的实现逻辑 二.创建菜单并控制游戏开始或游戏结束 三.创建棋盘并且初始化棋盘 四.打印棋盘并验证打印棋盘和初始化棋盘模块的实现 五.玩家下棋 六.电脑下棋 六.输赢判断 七. ...
- C语言小项目--三子棋小游戏
学了这么长时间的C语言,你是否觉得没有一个没写过稍微长点的代码显得很没有成就感!不怕,今天带你做一个小游戏,领略一下写C和小游戏的快乐.写完记得给自己一个鼓励哦! 一.三子棋小游戏 想必大家都玩过三子 ...
- vs2010c语言小游戏,用C语言写一个三子棋小游戏(用VS2010实现,加强版)
前几天写了一个三子棋小游戏,但是比较简单,因为以前写的游戏棋盘只能是3x3那么大.今天对那个程序做了两点改进: 1.现在可以实现在任意大小的棋盘上下棋了. 2.因为棋盘可能变大,为了玩家方便确定坐标, ...
- 呆头呆脑的电脑----三子棋小游戏(C语言版)
目录 1.需求分析 2.程序架构 3.代码实现(分函数呈现) (1)主函数代码实现 分析: 异常处理: (2)菜单函数的实现 分析: (3)游戏函数的实现 分析: (4)棋盘的初始化 分析: (5)棋 ...
- 趣讲用c语言实现三子棋小游戏
目录 直接先看看最后运行效果吧 三子棋如何设计的,及其步骤 1,源文件已经头文件的创建 2.创建主函数 3.test函数的创建 4.game函数的创建和运行 5.五个函数的实现 a.init_boar ...
- 三子棋小游戏带你走进编程世界(c语言版)
目录 一.游戏实现的整体思路 二.实现游戏大体框架 二.游戏函数的实现 1.初始化键盘 2.打印棋盘 3.下棋及胜负判断 (1)玩家下棋 (2)电脑下棋 (3)判断输赢 三.结语及源码 三子棋想必大家 ...
最新文章
- Setting the Reply-To Header in an Email using CDONTS.NewMail Object and CDO Message
- 卷积神经网络失陷,CoordConv来填坑(附代码&视频)
- easyui 添加 自定义图标
- 美国互联网广告07年总开支255亿美元, 增长27%
- 中国金融体系(金融机构,金融市场,金融基础设施)
- 数据结构与算法-- 二叉树后续遍历序列校验
- FPGA RTL级设计原则
- java怎么给框架添加背景图,java里怎么给Container添加背景图片
- 小程序picker下拉框选择时间,只需要年和月
- C++ 11 Lambda表达式
- 取经学道真经验——你听过这么享受的培训吗
- oracle判断字符串以什么开头_oracle存储过程 判断字符串开头
- react 翻书效果_React实现翻页功能
- 全国2013年最新电子地图矢量数据超图格SGD、MAPINFO、GST、SMW、SHP格式等
- 《道德经》与 (更新中)
- P1359 租用游艇 (线性dp
- ❤️ 炒 股 实 战丨原 地 起 飞 ❤️
- LibSVM中的松弛变量和惩罚因子
- 怎么恢复路由器出厂设置?安全上网看这里
- 九齐单片机 NY8B062D 之TIM0的使用
热门文章
- 解决ie8下onpropertychange事件间歇性失效的问题
- java之class文件解析
- 使用NtUserBuildHwndList遍历窗口_win7x64
- java计算机毕业设计学生管理系统MyBatis+系统+LW文档+源码+调试部署
- java接受JSON字符串
- 想成为“牛人”的你,知道这些“壁垒”吗? ——论技术壁垒、时间壁垒和成果壁垒
- Hbase下载安装部署详细步骤
- FreeSwitch配置
- H3C备份设备配置方法
- bat批处理adb screencap 获取安卓设备截图以日期为文件保存至电脑