下面是我学习一个月C语言写的五子棋代码,恭请大佬有错纠正,无错优化,谢谢!
相信五子棋大家都会玩,规则大家懂得都懂,那么怎么用代码实现呢,其实也不是很难,下面我用我认为比较简单的说一下。
首先我们些一个简易的界面:
如下图:
然后就是五子棋简单的逻辑:
①选择菜单里面序号;
②选择后,就是功能写入,功能主要有棋盘设置,玩家下棋,电脑下棋和输赢判断,这几个主要流程。
看一下主体框架:
其实这个不是很复杂 。
棋盘我们就打印简单点:
本来想把竖行的坐标打印了多少,好像忘了😓
具体代码详细过程:
在上面这个主体里其实最重要的是 game这个函数
实现了棋盘打印,玩家和电脑的下棋操作。
然后让我们看一下我们玩家怎么下棋吧!
就是通过输入坐标(x,y)来下,有点慢有点原始
但是就这点实力呀😭
这个首先打印一下棋盘,然后玩家下完,判断一下玩家是否胜利,其实我感觉可以加一个条件,别人下棋的次数小于🖐🏻五不用判断,因为是五子棋。好了然后电脑下,再重复前面的判断。然后这里我设了ret主要想用它的返回值判断玩家还是电脑胜利。
电脑🖥️下棋就更简单了,随机下。
用srand生成的随机种子来下。(你玩了以后感觉电脑想**)所以想请大佬改一改电脑这一块。🤩
好了,我们来看一下我感觉最复杂的判断胜利的代码:
然后这个我本来感觉应该先判断一下棋盘的格子是否被下↓了,所以➕了循环🔁,因为我后面➕了arr!=空格。然后就是横向判断遍历数组,纵向判断,再遍历,再左斜,右斜(要注意防止出界)
如果进入了一个if,那么就返回这个符号,判断谁Win,然后还需要判断棋盘是否满了。
到这里其实基本就完了。
我感觉把头文件放到这里比较方便
然后如果想改变棋盘大小可以该define后面数字🔢
然后想让界面更好看可以用easyX美化:
https://easyx.cn/
到这里就是我✍🏻写这个五子棋的所有了。
仅供参考,勿喷,谢谢