IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言初始——新手独立完成的小游戏——三子棋 -> 正文阅读

[C++知识库]c语言初始——新手独立完成的小游戏——三子棋

一.大纲

1.游戏菜单

2.下棋的工具(棋盘,棋子,规则等)

3.如何让玩家下棋

4.如何实现让电脑自主下棋

5.如何用代码实现判断输赢

第一步,我们先来制作一个棋盘。

?这里可以将其想象成一个二维数组,拥有x,y两个方向。

?虽然简陋一点,但对于新手而言还是很友好的(亲试!)。话不多说,我们直接上代码!

??这里的代码需要放在头文件中,可以新建一个头文件? ~~.h,从而可以在源文件中直接引用变量,只是需要敲出? ?#include "~~.h",即可。~~为定义的头文件名称。

? ? ? ? ?

?这里我们定义了一个 menu()函数,菜单一般是先于游戏的,因此我们使用do...while()循环,先将菜单显示出来,再让用户自己选择。其中我们可以向用户提出一条信息,让其输入 1 或 0? 代表玩 和不玩,并将其储存起来;再通过switch语句来判断用户的选择,在子语句case? :下敲出对应的代码即可。

按1则进入case 1: 开始游戏,此时我们应对game()函数进行封装,不能让用户玩了个寂寞;

?这里我们就开始定义函数,当然定义函数后应该记住去头文件中声明,否则计算机无法调用这个函数,调用方法即为定义函数的开头加上个? "? ;"? ,即? void首先是InitBoard()是用来初始化棋盘,即清理棋盘。

?可以使用两个for循环,让该二维数组中的每个元素变成'? ',就达到了清理的工作了。然后是打印棋盘。此时我们应该注意到,我们这简易的棋盘并不是有一个方形边框围起来,所以竖线与横线只有两根,因此我们在使用for循环时,应加上一个打印线的附加条件,即:if (i<row-1),即可实现我们想要达到的效果。同时记得加上换行符? "\n"。

打印棋盘后,我们需要设计一个函数让玩家自主输入下棋的坐标,这里我们需要注意,玩家输入的坐标x,y不可能与我们程序员的思路一样,不会输入下标,而是正常的坐标,因此在存放棋子时,要注意数组中的索引应为[? x-1 ][? y-1 ]。明白这一点后就可以很好地敲出代码。

?同时需要对用户输入的值进行检测是否合理,如若不合理则需要提示用户,具体代码如下:

?

?

?综上,我们已经可以让用户愉快的输入坐标了,但是还需要我们去实现电脑的自主下棋,即:随机生成两个0~2的数字(这里是让电脑输入,因此可以不必去人性化代码)。那么如何去实现随机生成这两个数字呢?

这里我们需要用到C语言自带的库函数rand(),同时需要引入该函数所在的库,即:<stdlib.h>.

但通过查阅rand()函数的使用(cplusplus.com或 zhreference.com),我们可以发现通过点用函数srand()来辅助生成随机数(即通过使用时间戳,细节我们跳过。),这里我们直接给出代码:

?

?同时srand()函数中使用的time()函数要通过引用库<time.h>来使用,哪又要如何将数字的范围固定在0~2的范围内呢?这里我们可以通过使用操作符”%“来实现,该操作符会返回余数,因此我们只需将产生的随机数%3即可(int a = rand()%3),就实现了电脑自主下棋。

下完棋之后我们需要判断是否有一方胜出,因此我们又需要定义一个函数来实现该功能,

?

?

?

?我们通过使用if语句来判断是否有一方胜出,胜出的一方返回一个能够代表着一方的字符或其他,

然后再在game()函数中使用多个判断语句,来根据字符的种类来确定是否有人胜出,但判断是否有一方胜出前,我们得先判断棋盘上是否还有空余的位置下棋,如果没有的话,我们需要让游戏停止,否则会一直在死循环中,占用系统内存。

?

?

?

?

?

?

?

?

?综上所述,一个简易的小游戏就制作成功了!

?

?

?

?

?

?

?

?

?

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 10:40:43  更:2021-09-10 10:41:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:18:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码