C语言手把手教学零基础笔记16—实现三子棋的游戏

今天应用所学的内容完成三子棋

1、首先写出测试函数,考虑到玩家或许玩完会又想玩,因此我们需要用do....while 循环,在这个过程要设置一个菜单,让玩家选择是否要继续游戏

ab36ce0af2ea476c8b77f564e337c250.png

那么结合我们的test函数,先把具体框架列出如下👇: 

e4c788b5b560463589da483168bc154e.png

2、紧接着我们将游戏整个实现,封装在game函数里面。3cb1bf6775234361844116f4e5f52cc1.png

 要画出九宫格,我们需要设置一个数组,

char board[3][3]

c4a893a1375342db892b01d555fc3f29.png

 

90e8d371194c42c0a02e1c03b90f6801.png

 

3、在封装游戏函数中,我需要先初始化我们的棋盘。我们将棋盘封装在一个函数中,再在game函数中调用。ff22270285b7485a91823e6825724023.png

 

⚠️这个时候要在打印一个空的棋盘,但是由于打印的是空格,所以我们其实看不到。首先需要初始化数组,InitBoard();首先需要将数组传过去,然后把行和列传过去,得到的具体函数如下👇:

57fcfd801c9645e2acc0d92474157238.png 

4、我们初始化棋盘后,我们要打印棋盘,我们先将其封装在一个函数中,再在game中调用。

fd908fedd22e43a7b9fe28a7ff6fcc26.png我们此时需要打印出如下的图像:

9e8597ff093b4524b1189c15e978d38a.png

要实现如上,可以考虑把它分成三组来实现。

28a758ccd4c04026a03f95137db80cc3.png

代码如下图可知⬇️:

8471f75318a24952aef83903cb2e7456.png 

再稍微优化一点:

b88bd08d63664a96af34ad35b907bf48.png

 

如果想要行列自由变换

3f27d03dc6934c8baae5a7374b3e14ff.png

我们需要在游戏里进行下一步就是玩家下棋。

b3eea4ceca794fd19955af8573bcff27.png

 这个棋盘里面玩家和电脑下棋是循环的,玩家下完要打印出来

41f361dff23f419484193f4db5e5fe61.png 

玩家下棋的函数里面要判断下棋的坐标的合法性

 

063627881dc244b48f692da97b3749ea.png

呈现的效果如下:

80e13a68e8ae4461a8138d91f066fe76.png 

之后电脑部分下棋,在游戏函数中表现为如此,因为要电脑生成随机的数那么电脑需要调用rand,那么也需要时间戳,此时调用srand,那么要出现如下的函数表达式。1579ea7045aa4912998c03b73c24f649.png

 紧接着游戏函数里面

1975011910da491fb72c75a0a8befe0a.png

调用了电脑下棋函数

ee641d3c8bd2416c9e97e395112b38b8.png

那么游戏现在表现效果如下:

4026da67ed29461d9a5b901b56d41f4f.png

那么电脑和人进行三子棋的游戏,那么我们需要设置什么情况,玩家赢;电脑赢;平局;继续。这四种状态,然后再设置比如当有一行的数字和有一列的数字均是统一数字,或者对角线的数字也想等,这种情况也是能判断赢或者输。

535b1f57d18c459395e2c295abd5cf2c.png

其中如果设置一个函数如果棋盘满了设置为1,如果棋盘还有空格设置为0。

94e949fe3d334c48bfbf7d31f3d87269.png 

实现游戏的函数

d0312844838e4706829befc806d37c44.png

4b19099c48d640308c36782e0ef7c507.png 

 

自己的源代码:https://download.csdn.net/download/qq_58242352/88244594

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小奶盖儿月月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值