基于labview设计的五子棋游戏
更新时间:2023-06-08 15:32:01 阅读量: 实用文档 文档下载
目录
一、课程题目 2 二、问题描述 2
游戏流程图 2 三、基本要求 3 四、游戏设计流程图 3 4.1设计流程图 3 4.1.1总体设计流程图 3 4.1.2人机对弈模式下的游戏流程图 4 4.1.3双人对弈模式下的游戏流程图 5 4.2各模块程序设计 7 4.2.1初始棋盘模块 7 4.2.2多步计算模块 7 4.2.2.1多步计算流程图 7 4.2.2.2多步计算前面板及程序框图 8 4.2.3决定下子方模块 10 4.2.4判定胜负模块 10 4.2.4.1判定胜负模块设计前面板及程序框图 10 4.2.5胜负对话模块 11 4.3游戏主程序设计 13 4.3.1五子棋主程序的程序框图 13 4.3.2五子棋的游戏界面 15 五、测试结果 16 六、附图 17 总结 19 参考文献 19
一:课程题目
五子棋游戏
二:问题描述
为了供人们闲暇时间随时随地地进行娱乐,提高自己的五子棋水平,本文以LabVIEW为平台,设计开发了这款单机版的五子棋游戏软件。
五子棋,亦称"连五子"、"五子连"、"串珠"、"五目"、"五目碰"、"五格"等。相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久。在古代,五子棋棋具虽然与围棋相类同,但是下法却是完全不同的。正如《辞海》中所言,五子棋是“棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜”。五子棋的游戏规则如下: 1. 行棋顺序:
黑先、白后,从天元开始相互顺序落子。
2. 判断胜负
最先在棋盘横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。黑棋禁手判负(Lose),白棋无禁手。黑棋禁手包括“三、三”(包括“四、三、三”)、“四、四” (包括“四、四、三”)、“长连”。黑棋只能以“四、三”取胜。
3. 如分不出胜负,则定为平局。 4. 对局中中途退场判为负。
5. 五连与禁手同时形成,先五为胜。
6. 黑方禁手形成时,白方应立即指出。若白方未发现或发现后未指明而继续应
子,则不能判黑方负。
7. 时间限定: 每方20分钟包干,然后1分钟读秒。
游戏流程图
从棋盘棋子的设计、各模块的搭建到主程序的编写、前面板的美化,五子棋的游戏总体设计流程如图2.1所示。
图2.1五子棋游戏总体设计框图
三:基本要求
这款基于LabVIEW的简易五子棋游戏,有人机对弈和双人对弈两种模式。选择游戏模式后开始游戏,设计程序对棋盘进行初始化,数组显示当期棋盘状态。人机对弈模式中,其中一方由电脑计算下子位置;双人对弈模式中,由双方决定下子位置。游戏中,任一方先在棋盘上形成纵向、竖向、斜向的连续相同颜色的五个棋子的一方为胜。如果有一方获胜,此时跳出对话框,显示一方获胜,游戏结束。按下确定,同时初始化棋盘,可以重新开始游戏。
程序主要涉及到棋盘棋子的设计,各模块的搭建、各个模块的调用及双方胜负的判定方法及前面板的美化。
四:游戏设计流程图
4.1设计流程图 4.1.1总体设计流程图
游戏开始,对棋盘进行初始化,初始化完成后,由主循环控制模块来控制轮到哪方下子,在游戏进行过程中,若有一方获胜,则跳出获胜对话框,再决定是否重新开始游戏;如果没有一方获胜,则程序不断循环执行。五子棋游戏流程如图4.1.1所示。
图4.1.1五子棋游戏流程图
4.1.2人机对弈模式下的游戏流程图
本游戏可分为两种模式:人机对弈模式和双人对弈模式。
若选择人机对弈模式,游戏开始,判断该位置是否有棋子。如无棋,则黑方先落棋。再判断黑方是否获胜,如果黑方获胜则选择是否重新开局,选择是就重新开始游戏,否则直接结束游戏。如果黑方没有获胜,则电脑计算下子位置,方式同上。五子棋人机对弈模式下的的游戏流程如图4.1.2所示。
图4.1.2 人机对弈模式下的游戏流程图
4.1.3双人对弈模式下的游戏流程图
若选择双人对弈模式,流程基本与人机对弈类似,只是把电脑计算下子位置改成白方下子。 五子棋双人对弈模式下的的游戏流程如图4.1.3所示。
图4.1.3双人对弈模式下的游戏流程图
4.2各模块程序设计 4.2.1初始棋盘模块
按下重新开始按钮后,调用该程序初始化棋盘。棋盘初始化前面板如图4.2.1.1所示。
图4.2..11初始棋盘前面板
用长32位的整形数值来表示棋盘大小,数组显示当前棋盘的状态,用循环结构来实现,当按下重新开始按钮,调用该程序初始化棋盘。初始棋盘程序框图如图4.2.1.2所示。
图4.2.1.2初始棋盘程序框图
4.2.2多步计算模块 4.2.2.1多步计算流程图
判断当前的最大权值是否大于100000,如果大于100000表明当前已有形成活三的棋子,则当前位置一定要下子——已方有活三的话要继续求胜,对方有活
三的话则要阻止。如果没有活三以上的棋则开始试下子,计算最佳下棋位置。
首先在当前的最佳位置试下一个已方子—白子,然后判断下子后是否有一方胜,如无则继续在试下子后的最佳位置下黑子,下完后再判断是否有一方胜,以此类推。
当最佳位置试下完成后,再在第二佳的位置继续试下子, 直到三个最佳位置试下完成,试下完成后如无很好的下子位置,则选择未试下子前的最佳位置进行下子。多步计算流程如图4.2.2.1.1所示。
图4.2.2.1.1 多步计算流程图
4.2.2.2 多步计算前面板及程序框图
数值显示电脑计算出当前的最佳下子位置。多步计算前面板如图4.2.2.2.1所示。
图4.2.2.2.1多步计算前面板
多步计算这个子程序相对复杂,其中应用了大量的条件结构及循环结构,看起来较为复杂。在这个复杂的程序里也同样调用了三个子程序,像权值计算、执行下子和判定胜负。在程序运行的过程中,这几个子程序也是不断循环执行的。多步计算程序框图如图4.2.2.2.2、图4.2.2.2.3所示。
图4.2.2.2.2 多步计算部分程序框图
图4.2.2.2.3 多步计算部分程序框图
4.2.3决定下子方模块
数值输出下棋步数,计算轮到哪方下子。决定下子方前面板如图4.2.3.1所示。
图4.2.3.1决定下子方前面板
用一个商与余数函数实现,商+1为下棋步数,余数为决定哪方下子。决定下子方程序框图如图4.2.3.2所示。
图4.2.3.2决定下子方程序框图
4.2.4判定胜负模块
4.2.4.1判定胜负模块设计前面板及程序框图
数组显示当前棋盘状态,布尔量指示某一方获胜。判定胜负前面板如图4.2.4.1.1所示。
图4.2.4.1.1判定胜负前面板
计算当前行的子数,相加为10是表示,五个子全为黑,黑胜;相加为0时表示五个子全为白,白胜。其他方向相同。判定胜负程序框图如图4.2.4.1.2所示。
图4.2.4.1.2判定胜负部分程序框图
4.2.5胜负对话模块
胜负对话前面板如图4.2.5.1所示:用布尔量来指示哪方获胜。
图4.2.5.1胜负对话模块前面板
当行或列的输出为-1时,表明当前棋盘没有棋子被下,但是,因为查询用户下子的循环又被停止,可判定此局被用户退出或程序被用户退出,此时不应该弹出胜负对话框,并用此方法代替使用“退出”或“重新开始”两个布尔量的局部变量来停止循环。用高亮执行,运行后点击“重新开始”后可以更方便地看出此处原理。胜负对话程序框图如图4.2.5.2所示。
图4.2.5.2胜负对话模块程序框图
当行或列的输出不为-1时,表明当前棋盘有棋子被下,此时有两种可能,黑子胜或白子胜,若黑子胜则跳出“黑子胜”对话框,若白子胜则跳出“白子胜”对话框。胜负对话程序框图如图4.2.5.3所示。
图4.2.5.3胜负对话模块程序框图
4.3游戏主程序设计
4.3.1五子棋主程序的程序框图
由于主程序的程序框图较为复杂,在完成前面模块搭建的基础上,将各模块作为完成各功能的模块,调用到主程序中去,为的是程序看起来简洁明了富有条理性。五子棋两种对弈模式下的主程序程序框图如图4.3.1.1、图4.3.1.2所示。
图4.3.1.1双人对弈程序框图
图4.3.1.2人机对弈程序框图
4.3.2五子棋的游戏界面
五子棋的游戏界面看起来很简洁,主要包括了人机对弈和双人对弈选择、重新开始按钮和退出程序按钮,这是在游戏过程中最基本的功能。除此之外,还涉及了棋子的设计、棋盘的布置及前面板的美化。五子棋主程序程序框图如4.3.2.1所示。
图4.3.2.1游戏界面
五、测试结果
五子棋人机对弈演示结果如图5.1所示:
图5.1 人机对弈结果显示
五子棋双人对弈演示结果如图5.2所示:
图5.2双人对弈结果显示
六、附图
图
6.1前面板
图6.2双人对弈程序框图
图6.3人机对弈程序框图
总结
本文只是在LabVIEW基础上做了个简单的程序设计,采用LabVIEW平台开发的五子棋游戏,游戏界面美观,程序的设计清楚明了、简单易读。在程序的运行过程中,有一些不足,如没有设计帮助文档及悔棋程序等,说明游戏功能的全面性还不够强。这需要在实践中进一步完善。设计中也有一些优点,这款单机版的五子棋游戏可以根据人数的情况,选择人机对弈或双人对弈模式,能够满足人们随时随地的娱乐需求。
参考文献
[1] 陈锡辉 张银鸿 编著,LabVIEW 8.20程序设计从入门到精通,清华大学出版社,2007
[2] 王福明 于丽霞 刘吉 丁博编著,LabVIEW程序设计与虚拟仪器,西安电子科技大学出版社,2009
[3] 阮奇桢著,我和 LabVIEW:一个 NI 工程师的十年编程经验,北京航空航天大学出版社,2010
[4] 王磊 陶梅 编著 ,精通LabVIEW 8.0,电子工业出版社,2007
[5] LabVIEW虚拟仪器程序设计及应用.人民邮电出版社.2008.12
[6] LabVIEW8.20程序设计从入门到精通.清华大学出版.2007.7
正在阅读:
基于labview设计的五子棋游戏06-08
东奥培训全部题目二(2001-4000)04-17
SANGFOR_MIG_v4.0_Manual_CN_20131018_DOC04-19
红外遥控键值解码数码管显示单片机程序05-20
鲁地税发23号《房地产开发企业税收征收管理暂行办法05-04
中扬镇 施工设计01-27
对涉毒学生开展帮教工作的方案08-31
二级VF历年笔试题(2005-2010)06-04
门神年画的民俗性特征04-25
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 五子棋
- 基于
- labview
- 设计
- 游戏
- 事业部季度、年度总结报告模板
- 国际贸易原理第五章国家实施贸易政策的措施——非关税措施(6)
- 内训师管理办法Word版
- 十三五重点项目-家具材等项目资金申请报告
- 大学生职业规划调查表
- 高中物理解题思路的突破点
- 长度和时间的测量_同步练习题(含答案)
- 数字电路 康华光(第五版)ch1数字逻辑概论
- 动物性食品加工工艺
- 拆迁补偿安置合同纠纷解析
- 水闸工程管理设计规范
- 大型医疗设备故障应急预案
- 2014-2015学年重庆市南开中学高三(上)一诊模拟数学试卷(文科)(解析版)
- 什么是51单片机最小系统
- 新屯中学消防安全管理制度
- 电动汽车驱动系统的仿真分析
- 劳动合同补充条款
- 伺服电机功率计算选型
- 刘家沟大坝防渗帷幕灌浆单元表(上报定稿)
- 数学教育概论期末题