傻瓜式的三子棋
文章目录
前言
大家好,我是萧寒,最近学习了一下用C语言编写一个小游戏-----三子棋,在现实生活中非常只需要一只笔,一张小白,便能随时随地玩,我现在都还记得以前上课摸鱼,就是随便拿本教材找个空白的地方,自己和自己在纸上画圈圈画差差。结果就是自己赢不了自己,果然最强的对手还是自己,哈哈哈。今天我就分享一下用C语言实现简单版的三子棋。
创建项目所需文件
首先打开自己的C语言编译器,新建一个项目用来存放三子棋这个项目,在此项目中新建三个文件
我自己的文件
-
text_1.c
-
game.c
-
game.h
text_1.c用来测试三子棋游戏,所以将主函数编写在这里,在这里面调用实现游戏的函数,并完成游戏的三大重要部分,第一部分一个简单游戏菜单引导用户玩游戏,第二部分游戏的算法实现的整体框架,第三部分对用户的在菜单的选择进行判断。
game.c专门用来写实现三子棋游戏的函数.
game.h声明函数和预定义常量的地方
text_1.c(main)
游戏菜单
菜单中有两种选择,所以我们需要实现两个选项的具体功能,当用户选1的时候就开始玩游戏,当用户选0则是退出游戏,如果用户选择了其它则给用户一条提示信息,让用户重新选择。实现选择这个功能我们可以用switch语句然后在调用相应的函数即可,仅仅是这样还是不够,这就好比王者只让你玩一把就不让你玩了,所以还需要加一个循环,让用户无限的享受游戏。
菜单功能实现
实现了菜单接下来就要考虑游戏的具体实现,我们先来看看样图,再去思考我们如何去是实现功能
结合现实我们下棋需要棋盘以及棋子,相应的在程序设计过程中我们也需要设计棋盘,棋子,还有一个对手,这样游戏才能正常进行,接下来就来实现。
游戏的算法实现
1.创建棋盘
2.格式化棋盘
未下棋时,棋盘为空,所有将所有数组元素初始化为空格
3.打印棋盘
####4.玩家下棋
二维数组的下标是从 0 0 开始的,但是这也是开发人员所知道的,普通的用户其实是默认是从1 开始,所以为了用户有更好的游戏体验,行和列都应该-1.咋这个游戏也不够只能输入两个在规定范围的数字去落子,有时候容易特别手贱容易输错,所以还需要加一个循环,和一句提示一句,既能让用户重复使用,也能让用户知道他那输错了。
5.电脑下棋
电脑会在玩家落子之后自动在棋盘空白处落子。咋们采用随机数的方法去实现。所以需要用到时间戳和随机数两个函数(rand(), tiem()),而调用rand()时需要调用srand()实际上用了三个函数。电脑自动落子的过程中它也要去把九宫格挨个找一遍,找到空白位置后才随机落子,所以还需要循环让电脑去找空白的位置,果然重复是计算机最强的能力,重复的计算,重复的查找不知疲惫。
6.判断输赢
-
玩家赢 ------返回 ‘*’
-
电脑赢-------返回’#’
-
平局–继续游戏
胜利条件
- 行是否相等
- 列是否相等
- 对角线是否相等
判断是否平局
游戏实现的函数调用
全部代码
结束语
通过这个游戏让我觉得电脑也不过如此,电脑智商有待提高。不过要提高也是我给它赋能而不是自己涨智商。哈哈哈。扯皮了扯皮了,昨日子看狂神的视频是看到一句话,分享给正在前行的你,即使在小的帆也能远航,无能什么时候都要保持自信。