《可视化编程(VC)课程设计报告_五子棋系统实现》.docVIP

《可视化编程(VC)课程设计报告_五子棋系统实现》.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《可视化编程(VC)课程设计报告_五子棋系统实现》

附件1: 学 号:课 程 设 计 课程名称 可视化编程(VC) 学 院 计算机科学与技术学院 专 业 软件工程专业 班 级 姓 名 指导教师2010——2011学年 第2学期 目录 1、摘要 2、关键字 3、正文 (1)功能描述必备功能绚丽功能 (2)操作实现 (3)详细剖析 (4)所遇问题 (5)未解决问题 (6)设计总结 4、参考资料 五子棋系统实现 【摘要】 此五子棋系统用户可以选择棋子颜色和样式,有黑白两种颜色的选取,备有计时功能,如果超时系统则做出让步处理。该系统有人机对战和人人对战的模式,五子相连时能自动判断胜负。 此次的五子棋系统界面良好,绚丽,有创新意识。功能完善,功能多样,其中有很多人性化以及趣味设计,如声音的提示等。 【关键字】 五子棋 计时 超时 让步处理 人机对战 人人对战 界面 功能 声音 趣味设计 【正文】 功能描述 1、必备功能 (1)用户可以选择棋子的颜色(黑、白),可以选择对战的模式(人人对战、人机对战),当为选棋子和模式时,系统默认人机对战,玩家执白棋,选择不同的模式,计时卡上的内容也会相应的显示 (2)拥有计时功能(下棋思考时间以及游戏总时间),如果超过规定时间没有落棋,则会有惩罚(超过25秒未落棋,出现提醒对话框后默认判定让步处理) (3)当五子相连时,系统自动判定输赢 (4)菜单相应的还有“重来”、“重置”、“退出”等功能 2、绚丽功能 (1)界面绚丽 (2)当按下“开始”时,弹出计时卡供计时,分布棋盘两边 (3)当开始时、落棋时、输赢时、超时时系统会发出声音 (4)当人机对战时,电脑落棋时,会有闪烁的功能 (5)当五子相连时,五子会同时闪烁,提醒棋局已完 未开始时界面截图 开始时界面截图 (很多同学问我为什么要画这样一个图放在界面,我觉得这刚好与黑白棋相呼应,所以就果断的画了,此次看来效果还不错) (桌面背景可以忽视) 菜单栏二、操作实现 1、未开始点击棋盘会出现提示 2、超时处理 让步前(白棋超时)让步后(白棋超时) 3、游戏时是无法改变游戏模式和棋子颜色的,如要改变,则需要点击游戏中的“重置”,被选择的模式以及棋子菜单项将会变灰 4、若要放弃当前棋局,可单击“重来”,单击“重来”,则按原来的模式以及棋子颜色进行游戏 5、若要结束游戏,则从“游戏”选择“退出”即可,或者单击右上角的 6、若要查看作者相关信息,单击菜单栏“关于”即可 三、详细剖析 1、界面如何绘制 (1)获取父窗口的宽cxClient,高cyClient 以及每一个格子的宽cxBlock,高cyBlock (2)画棋盘:DrawLine的关键代码 第一个for循环为画列,第二个for循环为画航当未开始时,则绘制出界面上的“八卦图”,代码如下 2、如何获取坐标并在特定区域画棋子 在WM_LBUTTONDOWN消息下,获取纵横坐标,经过转化,化为矩阵matrix[x][y]的下标x,y画棋子函数以及代码如下 3、如何进行黑白棋的转化 (1)当为人人对战(RRStartTRUE)模式时,黑白棋的转化,用全局变量count进行控制 (2)当为人机对战(RJStartTRUE)模式时,响应一次WM_LBUTTONDOWN消息,则完成玩家与电脑各一步操作 以上代码包括了电脑落棋后的闪烁效果以及声音效果。 (3)其中FIRST,SECOND为选择黑白棋进行变化的中间变量,实现方式如下 其中EnableMenuItem函数控制该菜单的可选与不可选(变灰) 4、如何控制电脑下棋的函数 POINT OpinionBYTE tap[][ROWCOLS], ChessCount note[]; void computerBYTE tap[][ROWCOLS], POINT *computerXY; 此次电脑下棋的算法参考了网络资源。 5、判断输赢 (1)int IsWinHWND hwnd,BYTE tap[][ROWCOLS], BYTE Color,int cxBlock,int cyBlock hwnd:窗口句柄,tap[][ROWCOLS]:标志棋盘个位置是否被占的矩阵,Color:棋子颜色,cxBlock,cyBlock为一个方格的宽高 (2)若五子相连,则调用shinehwnd,x,y,Color,cxBlock,cyBlock,flag; 闪烁函数 hwnd:窗口句柄,Color:棋子颜色,cxBlock,cyBlock为一个方格的宽高,flag标志其胜利的方式,有4种情况,五子一列,五子一横,五子左下到右上,五子左上到右下。 (3)若棋盘已满则调用BOOL IsFullBYTE tap[][R

文档评论(0)

paiyanht + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档