“忙里偷闲,虽苦中作乐”,终于带着“三子棋”与你们相遇!我想将三子棋分为两篇博客去谈一谈我理解的三子棋,第一篇我想讲一讲三子棋的代码思路和我们要掌握的知识点,第二篇则去带大家根据思路去敲成代码。
目录
本文章重要知识点:模块化编程和函数调用
模块化编程:它能够使得代码更加简洁,并且能够增加效率,那怎么使用模块化编程呢?我们可以添加头文件,在到源文件引用头文件即可,模块化编程一般用于函数多的时候,因此,头文件需包含函数的定义!这样我们想要的模块化编程便完成了! 函数调用:一般分为两种情况(无返回值和有返回值),无返回值则用“void”,而有返回值则是根据它需要返回的类型而定(int,char...),而返回值的接收用“return”就欧克了。函数调用又是通过形参反映(且形参可以有多个)
玩家选择:
我们能够使用分支语句去给玩家提供游戏选择(开始游戏,结束游戏,重新选择),然后若选择开始游戏则我们需要调用函数,若想结束,则用“break”终止循环。
游戏需要:
(一)现实中的我们大部分都用纸玩过三子棋吧,首先最重要的先制定棋盘,3*3的棋盘我们该怎么弄呢?有人立马站出来说“简单!直接用printf打印不就行了”但是太占用空间了,我们不妨想一想我们学的二维数组怎样?是不是听着还不错!现在棋盘的问题我们搞定了。 (二) 接下来我们来制定一下规则,我方用 '*' ,电脑用'#';我们是不是要让我下完一次,电脑下一次,那我们应该怎么操做呢?没错,调用函数;于是又冒出一个问题——万一电脑重复占用一个位置,我们可一通过if...else语句和while语句让它进行条件判断,直至选择没被占用的位置时,用“break”终止;这时我们又会发现电脑怎么随机打印至棋盘上呢?随机打印我们用rand()就很好(如果不了解rand,可以看“猜数字”有提及),在使rand打印的数用数组表示就行了。 (三)最后游戏结束又分为三种情况(玩家获胜,电脑获胜,平局),玩家获胜则是由最后一个 '*' 决定,反之,电脑获胜则是由最后一个 '#' 决定,用到if语句判断就行了,而平局则是判断棋盘是否被占满,运用for循环和if语句判断是否还为空位;最后我们可以通过多个if语句判断是否形成三行,三列,三斜。
谢谢大家观看!