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

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值