想必每个人都玩过五子棋,其实对于我而言,五子棋是小时候玩的最多的棋类游戏,当然小时候也爱玩象棋以及国际象棋之类的,不过由于五子棋比较简单,所以就先实现一个简单的人机五子棋。最近我就在想如今学会了一点编程之后是不是应该把以前小时候特备爱玩的游戏实现一下,毕竟那是一种珍贵的回忆!
好了其他的不多说了,进入到我们的正题,首先呢,我准备分两次实现这个五子棋的内容,因为在制作好之后,个人感觉自己对于AI落子的算法的实现写得不够好,也思考了好久,感觉还是没有达到预期的效果,虽说最近放假了,但是学校又有事情,因此这次就简单地先把界面实现,以及把其中的一些游戏逻辑函数,游戏判断函数先贴出来,之后再仔细想一想如何实现AI的算法,使得AI更加智能化,能够提升游戏的乐趣,否则老是玩家赢的话,这样的游戏做出来是很失败的!
首先先简单地介绍一下,主要实现了以下几个函数:
//游戏函数
BOOL IsBlackOrWhite(); //随机生成,判断谁是黑子或者白子
//游戏中的检测函数
void ResetGame(); //重新开始资源清理
BOOL TimeOut(); //判断超时函数
BOOL Change_pos(); //将屏幕上的坐标转化为棋盘上的坐标
BOOL Change_y(); //与上面函数共同组成转化函数
BOOL IsHaveChess(PlayerChess &pCh); //判断要落点位置有无其他棋子(玩家)
BOOL IsHaveChess(ComputerChess &cCh); //判断要落点位置有无其他棋子(电脑)
void RegretPace(); //悔棋函数(只能悔棋三次)
void Computer_play(); //电脑落子
BOOL CheckWin(); //判断玩家赢还是电脑赢
先在这里说明一下,其中电脑落子函数,以及判断输赢的函数这次感觉写的不够好,AI的算法还是很低级的,只要稍微会玩一下的玩家只要不大意根本输不了,因此这样的AI算法还是很失败的&#x