五子棋
五子棋是一种很受人们喜爱的游戏,它的规则简单,但玩法变化多端,富有趣味性,适合人们消遣。这里我们就来设计一个五子棋游戏。
(一)(一)人对人游戏
11游戏实现
人对人游戏,其实只是对游戏规则的实现,我们只是利用五子棋游戏的规则来编程,至于真正的游戏实现计算机的“智能”算法,我们将在后面讲述。
五子棋的规则很简单:1,判断是否能放下棋子(是否已经有了棋子);2,判断是哪种颜色下棋;
f3,判断是否已经结束(是谁赢?)。
这些规则,我们将用相应的函数来实现。其它,我们还将介绍其它一些功能的实现。如鼠标的更换,工具栏和状态栏的编辑,类与类之间的相互调用。
新建工程3_1,选择文件》新建项目》VC》MFC》MFC应用程序》输入名称五子棋》下一步》单文档》下一步》。。。》选中Wi
dows套接字复选框。如下图:
单击完成。
图311
12资源编辑
由于我们这个程序出现的关于资源编辑的内容太多,我们具体介绍如下(以下内容在视图》资源视图中添加):
见下图312,我们需要添加的有:
f图312黑白位图Bitmap以表示棋盘上面的棋子:
IDB_BLACKIDB_WHITE
黑白鼠标Cursor以替换当前鼠标:IDC_CURSOR1黑棋子
IDC_CURSOR
f说明:由于下棋时我们必须把鼠标热点设置在中间,点击下图(图313)最右边按扭,然后把鼠标移动到图像中你想设置为热点的地方,按下鼠标左键。
图313黑白图标Ico
以显示在状态栏供以提示:
IDI_BLACKIDI_WHITE
说明:由于我们的图标支持256色,按下下图(图314)最右边按扭,选择Device
里面显示的选项。图314
菜单以供操作(在资源视图》me
u中设置):开始:ID_START保存:ID_SAVE
f打开:ID_OPEN
工具栏:如上图所示。
说明:工具栏一般都是根据菜单选项而产生的,它的ID一般都能从菜单的ID中找
到。
13变量函数
首先,为了实现状态栏的应用,我们必须更改它的变量:
在Mai
Frmh文件里面,把CStatusBarm_w
dStatusBar为public
接着是在3_1Viewh文件里面添加变量函数:
两个鼠标HCURSORhcursorwhiteHCURSORhcursorblack棋盘数组i
twzq1919colorwhiteTRUE时白棋下,否则黑棋下boolcolorwhite棋子位图CBitmapm_bmblackCBitmapm_bmwhite
保存文件voidSave检查是否结束voidoverCPoi
tpoi
t鼠标操作afx_msgvoidO
LButto
UpUINT
FlagsCPoi
tpoi
t鼠标图形更换afx_msgBOOLO
SetCursorCW
dpW
dUINT
HitTestUINTmessage菜单的开始afx_msgvoidO
Start菜单的保存afx_msgvoidO
Save菜单的打开afx_msgvoidO
Ope
f14具体实现
棋盘大小设置:
由于r