一、项目简介
五子棋是是一种两人对弈的纯策略型棋类游戏,通常双方分别使用黑白两色的棋子在棋盘交替下棋,先形成五子连线者获胜。此次课程设计主要目的是实现五子棋的双人对弈,对战双方通过鼠标点击进行对弈。
二、系统实现
游戏通过鼠标点击实现下棋,黑白子交替下棋。
![](https://img-blog.csdnimg.cn/img_convert/550eb9e6fb323f3e606a5b6f636325b7.png)
三、关键技术
1、类定义
程序通过使用easyx来实现图形界面,在程序中需要调用头文件#include<easyx.h>。程序定义类chess,主要包含五个public函数和一个private数组,其功能如图。下面对程序各个函数进行介绍。
![](https://img-blog.csdnimg.cn/img_convert/0a9ba778a0f55af98c9cdf424bb1b729.png)
2、void chess::buildboard()
主要实现棋盘的建造,通过数学的坐标系知识进行建造。第一个for循环实现打印横线,第二个for循环实现打印竖线。rectangle函数实现加粗边框、通过solidcircle函数打印小圆点便于下棋定位,outtextxy函数打印游戏名称。
打印棋盘结果如图。
![](https://img-blog.csdnimg.cn/img_convert/2dd3941cf27a5ad14995001d3a5a88af.png)
![](https://img-blog.csdnimg.cn/img_convert/3a88c1665842c48f48a84b47fb85fbb3.png)
3、void chess::printchess()
主要实现棋子的打印,通过for循环遍历数组找出值为-1的元素打印黑子,值为1的元素打印白子。棋子的打印通过solidcircle打印实心圆,通过setfillcolor改变棋子颜色。注意实心圆打印的位置要应用坐标系知识,实现棋盘坐标与窗口坐标的转换。
![](https://img-blog.csdnimg.cn/img_convert/6c6432d6e47a648c6696dfcf8749be25.png)
4、int chess::set1(int x,int y)与int chess::set2(int x, int y)
通过