(完整word版)五子棋实习报告.doc

上传人:ni****g 文档编号:553683684 上传时间:2023-05-05 格式:DOC 页数:18 大小:519.77KB
返回 下载 相关 举报
(完整word版)五子棋实习报告.doc_第1页
第1页 / 共18页
(完整word版)五子棋实习报告.doc_第2页
第2页 / 共18页
(完整word版)五子棋实习报告.doc_第3页
第3页 / 共18页
(完整word版)五子棋实习报告.doc_第4页
第4页 / 共18页
(完整word版)五子棋实习报告.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《(完整word版)五子棋实习报告.doc》由会员分享,可在线阅读,更多相关《(完整word版)五子棋实习报告.doc(18页珍藏版)》请在金锄头文库上搜索。

1、计算机工程学院实 习 报 告课程名称:算法设计技能训练设计题目: 五子棋 院 系: 计算机工程学院 专 业: ) 学生姓名: 学 号: 起止日期: 2015年1月5日 2015 年1月15日指导教师: 学年学期: 2014 2015 学年 第 1 学期目录1 课题综述- 1 -1.1 技能训练题目- 1 -1.2 五子棋的来源及意义- 1 -1.3 技能训练任务及要求- 1 -1.4 软硬件运行环境及开发工具- 2 -2 系统设计- 2 -2.1 总流程图- 2 -2.2 总体方案- 3 -3 详细设计- 3 -3.1 算法描述- 3 -3.2 详细流程图- 4 -4 代码编写- 6 -5 运

2、行与测试- 12 -6 总结与体会- 13 -7 附录- 14 -7.1 参考文献- 14 -7.2 设计任务书- 15 -7.3 摘要- 16 -1 课题综述1.1 技能训练题目编写一个五子棋的游戏程序实现人与机对下的功能。要求:1)要有棋盘;2)设计输、赢判断规则函数;3)给出下棋过程1.2 五子棋的来源及意义五子棋是起源于中国古代的传统黑白棋种之一。发展于日本,风靡于欧洲。古代五子棋的棋具与围棋相同,纵横各十七道。五子棋大约与围棋一起在我国南北朝时先后传入朝鲜、日本等地。1931年规定棋盘为15x15。20世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列变化,使五子棋这一简单的游戏复杂化、

3、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征:短、平、快,又有古典哲学高深学问:阴阳易理;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源远流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西方文化的交流点,是古今哲理的结晶。1.3 技能训练任务及要求掌握用C+语言解决问题的基本方法和步骤,能够熟练地使用C+语言编写中小型应用程序。熟练掌握C+语言编写规则,掌握函数的应用方法和编写。熟练掌握面向过程程序设计方法

4、。熟练掌握并能运用已学的数据结构。掌握结构化程序设计思想和方法;培养和提高学生的程序调试能力。1.4 软硬件运行环境及开发工具1.4.1硬件运行环境P IV以上计算机,Window XP以上操作系统1.4.2 软件开发工具Vc+6.02 系统设计2.1 总流程图开始选择玩家对战(PVP)人机对战(PVC)生成棋盘 电脑(X)/玩家(O)落子黑方(X)/白方(O)落子 PVP PVC N(PVP) N(PVC)是否连成五子 判输赢 Y图2_12.2 总体方案 首先用定义一个五子棋的类,其构造函数实现模拟棋盘(二维数组模拟实现)的初始化。该类的成员函数能实现双方落子后对模拟棋盘的改变、判输赢、输出

5、当前模拟棋盘、判断给定位置是否可落子等操作;再定义实现玩家对战的函数和人机对战的函数(人机对战函数中编写简单的电脑择优落子的算法);最后编写测试函数。3 详细设计3.1 算法描述3.1.1 判断输赢的算法根据最后一个落子的位置进行范围(9x9)搜索,成五子连珠则最后落子方胜。3.1.2 判断是否五子连珠的算法对给定点分别进行行、列、主对角线、副对角线是否成五子连珠的判定。例(对行):在棋盘内的前提下,向前遍历,每次有一个与给定点相同 的点计数器加一,直到遇到不同点则转为向后遍历,每次有一个与给定点相同的点计数器加一,直到遇到不同点则结束遍历,计数器与5比较即能得出是否成五子连珠,比较后计数器清

6、零,成五子则可返回true,否则转为队列判断。3.1.3 人机对战时电脑择优落子(简单择优)的算法全局搜索是否存4子相连,若存在,判断两端是否可落子,若可落子则落子,若不可则继续搜索直到全局都搜索完毕;若仍未落子则全局搜索是否存在3子相连,若存在,判断两端是否可落子,若可落子则落子,若不可则继续搜索直到全局都搜索完毕;若仍未落子则全局搜索是否存在2子相连,若存在,判断两端是否可落子,若可落子则落子,若不可则继续搜索直到全局都搜索完毕;若仍未落子,则落于玩家所落子位置后第一个可落子的位置。3.2 详细流程图开始取落子位置(x,y) (x,y)列向成5子 Y判游戏是否结束及输赢的流程图 N (x,

7、y)行向成5子 Y N(x,y)主对角线成5子 Y N(x,y)副对角线成5子 Yaxy=X NN游戏未结束 Y白(O)方胜胜黑(X)方胜胜图3_2_1电脑择优落子的简单算法流程图:开始取棋盘上第一个点取棋盘上第一个点取棋盘上第一个点 N N该点在棋盘内该点在棋盘内该点在棋盘内N点后移找到玩家所落子后一个点点后移点后移Y YY有4子相连有3子相连有2子相连NNN N YN YNY两端可以落子两端可以落子两端可以落子落子图3_2_24 代码编写判输赢规则代码:bool Chess:IsOver(int x,int y)int k=0,i,j;/判列是否成五子for(i=x;ix-5;i-)if(

8、aiy=axy)k+;elsebreak;if(i0)break;for(i=x+1;i14)break;if(k=5)return true;/判列结束else/判行是否成五子k=0;for(i=y;iy-5;i-)if(axi=axy)k+;elsebreak;if(i0)break;for(i=y+1;i14)break;if(k=5)return true;/判行结束else/判主对角是否成五子k=0;j=y;for(i=x;ix-5;i-)if(aij=axy)k+;j-;elsebreak;if(i0|j0)break;j=y+1;for(i=x+1;i14|j14)break;if(k=5)return true;/判主对角结束else/判副对角是否成五子k=0;j=y;for(i=x;ix-5;i-)if(aij=axy)k+;j+;elsebreak;if(i14)break;j=y;for(i=x+1;i14|j=5)return true;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号