案例8苹果棋游戏

案例8苹果棋游戏

ID:42941064

大小:280.31 KB

页数:15页

时间:2019-09-26

案例8苹果棋游戏_第1页
案例8苹果棋游戏_第2页
案例8苹果棋游戏_第3页
案例8苹果棋游戏_第4页
案例8苹果棋游戏_第5页
资源描述:

《案例8苹果棋游戏》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VisualC++程序开发案例教学案例8苹果棋游戏游戏规则苹果棋为8横8纵,共有64个方格黑、白二色棋子开局黑、白棋子各二枚,交叉放置双方各执一色,轮流下子所下己方之子应与已有己方之子对对方某些棋子构成夹击之势(无论横、竖、斜线,没有空格)被夹击的对方棋子则自动转换为己方棋子棋盘所有格子均已填满,棋局结束棋盘上棋子多的一方获胜本案例知识点鼠标消息的判断棋局的判断菜单消息二维数组的应用要点分析棋盘初始化后,在屏幕上的位置是已知的,可以通过鼠标单击的位置来判断落子的位置使用二维数组A[8,8]来存储落子A[i,j]=0,表示该处无子A[i,j]=-1,表示

2、该处是黑子A[i,j]=1,表示该处是白字要点分析当鼠标在棋盘上左键单击后,扫描当前A数组,判断此空格是否可以下子(已有子无效,没有形成夹击无效)记录下子位置判断棋局,对8个可能的方向上分别进行搜索,若形成夹击的情况,则改变棋子颜色,否则无效找不到任何落子处,游戏结束要点分析检查落子的8个方向,有dx和dy的不同组合来表示dx=0dy=-1dx=1dy=-1dx=1dy=0dx=1dy=1dx=0dy=1dx=-1dy=1dx=-1dy=0dx=-1dy=-1编程要求棋盘显示比例适当,带有各自线,棋盘颜色采用与棋子反差大的颜色(黄色和绿色)在窗口适当位

3、置显示提示信息当前该哪方下棋当前盘面情况黑、白轮流下子,没有形成夹击,鼠标点击无效下子正确后,能够将被夹击的子转换为己方棋子正确判断和显示比赛结果解题步骤用AppWizard生成一个名为AppleChess的SDI的程序框架,均用缺省设置编辑项目的菜单资源,在主菜单中添加一个菜单“重玩”选项,标识为ID_REPLAY,将菜单属性General选项卡中Pop-up设为非选中状态解题步骤利用ClassWizard为视图类添加与菜单选项相对应的成员函数,在MessageMaps选项卡,选择CAppleChessView类,在ObjectIDs列表框选择ID_

4、REPLAY标识,在Messages列表框中选择COMMAND,添加成员函数voidCAppleChessView::OnReplay(){┇}解题步骤利用ClassWizard为视图添加鼠标单击的消息处理函数,选择CAppleChessView类,WM_LBUTTONDOWN消息,添加成员函数voidCAppleChessView::OnLButtonDown(UINTnFlags,CPointpoint){┇}基本框架下新增代码的作用AppleChessView.h文件中,在前面添加一些需要的宏定义AppleChessView.h文件中,CAppl

5、eChessView类定义中添加需要的成员变量AppleChessView类中添加三个成员函数voidCAppleChessView::CheckNext(inti,intj,intintFlag){┆}//作用是检查某一个方向上的棋子是否构成夹击之势,若是,可以改变棋局,吃掉对方棋子为己色基本框架下新增代码的作用voidCAppleChessView::CheckNext(inti,intj,intintFlag){┇}//8个方向检查在i,j处落子是否可以,只有形成夹击之势才符合落子条件,则保存m_Next数组中,统计棋子总数BOOLCAppleC

6、hessView::FillNext(){┇}//找出下一步的所有可能棋局,至少存在一个可能的落子处,存放m_Next中在CAppleChessView类的OnDraw函数中添加画棋盘、画棋谱、白棋、黑棋、提示输出信息等基本框架下新增代码的作用在CAppleChessView类的构造函数CAppleChessView::CAppleChessView(){┇}中添加棋盘初始化代码,黑、白个2个棋,黑棋先行,输出显示的初始信息在CAppleChessView类中添加鼠标消息响应函数voidCAppleChessView::OnLButtonDown(UI

7、NTnFlags,CPointpoint){┇}点击鼠标得到棋盘坐标,判断该单击点是否和搜索出的某一棋局相匹配,若是则刷新棋盘(显示该棋局)和显示输出信息,如果棋盘无空,则GameOver!基本框架下新增代码的作用在CAppleChessView类中为菜单添加消息响应函数voidCAppleChessView::OnReplay(){┇}该函数与初始化的成员函数代码基本一样由于程序中需要存储下一步棋局,增加了一个新类structNext,其中包括结构体成员的定义作业理解、调试案例写出苹果棋案例流程框架(流程图)写出案例理解和体会改进发挥(棋盘颜色,棋盘

8、大小,人机对弈、对弈规则加难,如向后搜索更多步等)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。