基于c语言五子棋小游戏--本科生毕业设计.doc
五子棋小游戏一. 需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生。大家对于这个小游戏的需求如下:首先,设计这个游戏最基本的就是实现玩家之间对战,玩家可以通过某些操作来实现对战功能;有时候可能由于时间等原因,玩家可能需要保存游戏,此时需要一个“保存”功能;有时候可能玩家由于失误会走错棋,此时就需要“悔棋”功能;有时候玩家可能觉得这局游戏玩的非常不好,这时候就需要“重新开始游戏”功能;玩家在玩过游戏之后有可能想保存游戏记录便于以后分析此时就需要“排行榜”功能;有些玩家在玩游戏时喜欢听音乐,这时候就需要在下棋时可以播放背景音乐的功能;最基本的通过输入坐标来实现落子的操作方式很繁琐而且很不方便,这时候就可以将落子机制改为更直观的光标移动模式。二. 设计思路1.玩家对战功能:在玩家对战功能中,玩家可以通过按方向键来移动光标、按空格来实现落子,最终在横或竖或斜方向上达成五个相同颜色的棋子来获得胜利。基本思路:(1)使用二维数组保存棋局。(2) 由于要使用光标,所以使用输出缓冲器。(3) 打印棋盘。主要使用Print()函数来算出棋盘并将缓冲器内容输出。其余为其中调用的辅助函数。chessPrint()是打印交点坐标的字符的函数;getCurse()是打印光标的函数;write()函数是用来向缓冲器里面写入字符串的函数;ln()函数是负责将缓冲器写入位置提行的函数;Display()函数是将缓冲器中内容输出到屏幕的函数。(4) 下子,在后文有详细介绍。(5) 胜负平判断调用Check()函数进行四个方向的检查,检查是否有五子连珠。判断完毕后输出结果(如果存在结果)2.保存游戏和装载游戏功能:在游戏过程中,只要按“1”键就可以保存游戏到指定名称的文档中;在游戏开始界面,只要按“2”选择“load board”就可以装载指定名称的游戏。基本思路:调用saveGame()函数将当前棋局的相关信息全部保存到结构体变量saveChess中,并将其中的内容全部保存到文件里。加载时将结构体变量里的数据全部读出,赋给当前棋局相关信息变量,之后正常运行游戏即可。3.悔棋功能:在游戏过程中,只要按“2”键就可以返回到上一步的局面。基本思路:玩家对战时,每个玩家每次成功落子之后,棋盘的相关信息就会被记录到一个结构体数组里。每次悔棋时,就调用一个函数把储存在结构体数组里的上一回合的信息全部赋给当前棋局信息变量。4.重新开始游戏功能:在游戏过程中,只要按“3”键就可以初始化棋局,重新开始游戏。基本思路:玩家对战时每一次重新开始游戏就调用runGame()函数,并返回当前玩家信息。人机对战时每一重新开始游戏就调用自身,并返回当前玩家信息。5.排行榜功能:在一局游戏结束时,按照提示输入“1”则可以将自己的名字及成绩保存到排行榜文件中。在游戏开始界面,只要按“3”就可以查看排行榜。(排行榜按照步数由小到大,棋色又白到黑排序)基本思路:一局游戏结束时调用inList()函数,inList()函数又调用addList()函数,将关于棋局的部分信息保存到文件。关于排序设置了单独的函数sortList()函数,其在addList()里面被调用。此处使用了结构体数组,按照其中的“步数”成员将结构体数组中的元素进行“冒泡排序”。这里比较特别的是,每次都是先将要加入的内容写到文件末尾,再将文件中所有内容读出后进行排序,最后再将排好序的内容全部写入文件。6.背景音乐功能:在游戏过程中会一直循环播放音乐,带给玩家不一样的享受。基本思路:使用Windows.h头文件,并加上相关指令再调用PlaySoundA()函数就可以实现循环播放背景音乐。7.使用光标定位棋子:使用方向键控制光标移动方向,使用空格键来实现落子,带给玩家比坐标落子更高级的体验,更加方便快捷。(此处使用了以前没用到的,调用getch()函数,为了不需要键入回车。)基本思路:光标实现:使用缓冲器将棋盘交点的间隔都填充内容,光标用制表符表示,其余为空格。方向键移动光标:防止越界:空格落子:8. 简单的人机对战:主要防御型的AI,主要针对对手的棋型来安排战术,有时会选择进攻。基本思路:判断对手是否有2,3,4子连珠,如果有,电脑会在两头下子;如果没有,若己方在一侧存在3子或4子连珠,电脑会在后面补子;如果以上情况均未出现,电脑会随机在对手单子周边落子。其余基本功能同人人对战,但是不支持保存和读取棋局功能。按照奇偶数来判断是该电脑走子还是玩家走子。电脑执黑则会有不同的初始化方法。三. 用户手册1. 如何运行程序2. 如何开始游戏(包括玩家对战和人机对战)3. 如何退出游戏4. 如何进行游戏5. 如何保存当前游戏(仅支持玩家对战)6. 如何读取已保存的游戏(仅支持玩家对战)7. 如何重新开始游戏(支持人机和玩家对战)8. 如何保存记录(支持人机和玩家对战,不加区分)9. 如何调取记录进行查看(支持人机和玩家对战,不加区分)10. 如何查看游戏规则11. 如何了解设计师相关信息12. 如何悔棋(支持人机和玩家对战)1. 如何运行程序第一步,打开VS2012,点击“打开项目”。第二步,选择“高级五子棋”项目,点击“打开”第三步,使用快捷键“Ctrl+F5”,开始运行程序,进入游戏开始界面。2. 如何开始游戏按照开始界面中的提示操作即可,从键盘输入“1”即可开始玩家对战或人机对战(输入“1”为玩家对战,输入“2”为人机对战,人机对战时可以选择电脑的颜色)。输入“1”之后的效果:再输入“2”之后的效果:再输入“1”之后的效果:再输入“2”之后的效果:3如何退出游戏此处分两种情况:第一种是在开始界面,可以通过键盘输入“0”来实现退出游戏(此时会有退出界面);第二种是在游戏过程中,可以通过按“Esc”键来直接退出游戏(此时没有退出界面)。第一种:输入“0”之后的结果:第二种:按“Esc”之后的效果:4. 如何进行游戏玩家可以通过按“”“”“”“”来实现光标的移动,通过按空格键来在没有棋子的位置实现落子。初始:按空格之后的效果:按“”之后的效果:5. 如何保存当前游戏在游戏过程中,玩家可以通过按“1”来实现游戏的保存。按“1”之后的效果:6. 如何读取已保存的游戏在游戏开始界面,可以通过从键盘输入“2”来装载曾经保存过的游戏。输入“2”之后的效果:7. 如何重新开始游戏在游戏过程中,按“3”可以实现游戏的重新开始。初始:按“3”之后的效果:8. 如何保存记录在一局游戏结束后,会有如下文字提示:输入“1”后的效果:9.如何调取记录进行查看在游戏开始界面,可以通过键盘输入“3”来查看排行榜内容。10.如何查看游戏规则在游戏开始界面可以通过键盘输入“4”来查看游戏规则。11.如何了解设计师相关信息在游戏开始界面输入“5”即可了解设计师相关信息。12.如何悔棋在游戏过程中,可以按“2”来实现悔棋,即恢复到上一步的状态。初始:按“2”之后的效果:四. 总结 通过本次五子棋大作业,我初步掌握了运用之前学过的知识去开拓未知领域的能力、借鉴与发展能力、自学能力等多项技能。总的来说我感觉这次大作业的难度是比较大的,这其中会面临很多选择,这恰恰是考验我们能力的地方。例如,“排行榜”功能就可以选择是使用链表来做还是使用结构体数组来做。我一开始的思路是使用链表来做,但是由于我链表的相关知识掌握的不是很熟练所以屡屡受挫,最终我决定改变思路,使用结构体数组来做,果然要容易一些,我也成功的实现了排行榜功能。再比如,好多同学都是选用EasyX来实现鼠标控制,我本来一开始也想尝试,但是后来经过努力发现这种模式的难度对我来说偏高,所以我借鉴了一下网上的一些五子棋源代码,最终决定使用光标这种比坐标略强、比鼠标略弱的操作模式。这样的例子在开发过程中还有很多,在这里我就不一一列举了。总而言之,我从这次大作业中收获了很多专业知识,更重要的是我掌握很多以前没有的能力。1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究2. 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器7. 单片机控制的二级倒立摆系统的研究8. 基于增强型51系列单片机的TCP/IP协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机实现 18. 一种基于单片机的轴快流CO,2激光器的手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制 22. 基于单片机的软起动器的研究和设计 23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究 24. 基于单片机的机电产品控制系统开发 25. 基于PIC单片机的智能手机充电器 26. 基于单片机的实时内核设计及其应用研究 27. 基于单片机的远程抄表系统的设计与研究 28. 基于单片机的烟气二氧化硫浓度检测仪的研制 29. 基于微型光谱仪的单片机系统 30. 单片机系统软件构件开发的技术研究 31. 基于单片机的液体点滴速度自动检测仪的研制32. 基于单片机系统的多功能温度测量仪的研制 33. 基于PIC单片机的电能采集终端的设计和应用 34. 基于单片机的光纤光栅解调仪的研制 35. 气压式线性摩擦焊机单片机控制系统的研制 36. 基于单片机的数字磁通门传感器 37. 基于单片机的旋转变压器-数字转换器的研究 38. 基于单片机的光纤Bragg光栅解调系统的研究 39. 单片机控制的便携式多功能乳腺治疗仪的研制 40. 基于C8051F020单片机的多生理信号检测仪 41. 基于单片机的电机运动控制系统设计 42. Pico专用单片机核的可测性设计研究 43. 基于MCS-51单片机的热量计 44. 基于双单片机的智能遥测微型气象站 45. MCS-51单片机构建机器人的实践研究 46. 基于单片机的轮轨力检测 47. 基于单片机的GPS定位仪的研究与实现 48. 基于单片机的电液伺服控制系统 49. 用于单片机系统的MMC卡文件系统研制 50. 基于单片机的时控和计数系统性能优化的研究 51. 基于单片机和CPLD的粗光栅位移测量系统研究 52. 单片机控制的后备式方波UPS 53. 提升高职学生单片机应用能力的探究 54. 基于单片机控制的自动低频减载装置研究 55. 基于单片机控制的水下焊接电源的研究 56. 基于单片机的多通道数据采集系统 57. 基于uPSD3234单片机的氚表面污染测量仪的研制 58. 基于单片机的红外测油仪的研究 59. 96系列单片机仿真器研究与设计 60. 基于单片机的单晶金刚石刀具刃磨设备的数控改造 61. 基于单片机的温度智能控制系统的设计与实现 62. 基于MSP430单片机的电梯门机控制器的研制 63. 基于单片机的气体测漏仪的研究 64. 基于三菱M16C/6N系列单片机的CAN/USB协议转换器 65. 基于单片机和DSP的变压器油色谱在线监测技术研究 66. 基于单片机的膛壁温度报警系统设计 67. 基于AVR单片机的低压无功补偿控制器的设计 68. 基于单片机船舶电力推进电机监测系统 69. 基于单片机网络的振动信号的采集系统 70. 基于单片机的大容量数据存储技术的应用研究 71. 基于单片机的叠图机研究与教学方法实践 72. 基于单片机嵌入式Web服务器技术的研究及实现 73. 基于AT89S52单片机的通用数据采集系统 74. 基于单片机的多道脉冲幅度分析仪研究 75. 机器人旋转电弧传感角焊缝跟踪单片机控制系统 76. 基于单片机的控制系统在PLC虚拟教学实验中的应用研究77. 基于单片机系统的网络通信研究与应用 78. 基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究79. 基于单片机的模糊控制器在工业电阻炉上的应用研究 80. 基于双单片机冲床数控系统的研究与开发 81. 基于Cygnal单片机的C/OS-的研究82. 基于单片机的一体化智能差示扫描量热仪系统研究 83. 基于TCP/IP协议的单片机与Internet互联的研究与实现 84. 变频调速液压电梯单片机控制器的研究 85. 基于单片机-免疫计数器自动换样功能的研究与实现 86. 基于单片机的倒立摆控制系统设计与实现 87. 单片机嵌入式以太网防盗报警系统 88. 基于51单片机的嵌入式Internet系统的设计与实现 89. 单片机监测系统在挤压机上的应用 90. MSP430单片机在智能水表系统上的研究与应用 91. 基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用92. 单片机在高楼恒压供水系统中的应用 93. 基于ATmega16单片机的流量控制器的开发 94. 基于MSP430单片机的远程抄表系统及智能网络水表的设计95. 基于MSP430单片机具有数据存储与回放功能的嵌入式电子血压计的设计 96. 基于单片机的氨分解率检测系统的研究与开发 97. 锅炉的单片机控制系统 98. 基于单片机控制的电磁振动式播种控制系统的设计 99. 基于单片机技术的WDR-01型聚氨酯导热系数测试仪的研制 100. 一种RISC结构8位单片机的设计与实现 101. 基于单片机的公寓用电智能管理系统设计 102. 基于单片机的温度测控系统在温室大棚中的设计与实现103. 基于MSP430单片机的数字化超声电源的研制 104. 基于ADC841单片机的防爆软起动综合控制器的研究105. 基于单片机控制的井下低爆综合保护系统的设计 106. 基于单片机的空调器故障诊断系统的设计研究 107. 单片机实现的寻呼机编码器 108. 单片机实现的鲁棒MRACS及其在液压系统中的应用研究 109. 自适应控制的单片机实现方法及基上隅角瓦斯积聚处理中的应用研究110. 基于单片机的锅炉智能控制器的设计与研究 111. 超精密机床床身隔振的单片机主动控制 112. PIC单片机在空调中的应用 113. 单片机控制力矩加载控制系统的研究 项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计论文,优秀毕业论文,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,毕业论文,单片机论文,基于单片机论文,毕业论文终稿,毕业论文初稿,本文档支持完整下载,支持任意编辑!本文档全网独一无二,放心使用,下载这篇文档,定会成功!