一、前言
五子棋本身逻辑还是很简单的,只要黑白任一棋子连成5个即为获胜,本文简单用C++结合EGE库将其实现了一下。
但考虑到五子棋这种游戏为两个人下的,为其添加一个网络联机功能或许会更好,不过本文并没有实现,看以后有时间再说吧。
EGE库的配置在本站的其它文章中已经做了详细的介绍,所以这里不再赘述,不会的可以参考其它文章:引入EGE库
最终成品如下:
只实现了基本功能,如有需要可以自己再完善一下细节,代码可以从文末下载。
二、代码逻辑
1.main函数
这个代码的逻辑依旧很简单,和另一个推箱子的代码逻辑基本是一样的:
- 所有操作都在一个二维数组上。
- 将这个二维数组映射到窗口上。
整个代码不过两百行而已,这里简单介绍一下即可:
只有两个函数:
draw
:用于将下棋的二维数组画到窗口上。isWin
:用来判断当前棋局的输赢情况。
然后主函数中就是在初始化窗口、设置窗口背景色、标题、棋盘二维数组、当前下棋人、绘制棋盘。
然后来到for
这个游戏循环中,不理解为什么这么写的,最好的去看一看前面引入EGE库的系列文章,里面有详细的介绍。
然后游戏循环中,基本可以分为三个部分: