基于C#的五子棋游戏开发.doc
《基于C#的五子棋游戏开发.doc》由会员分享,可在线阅读,更多相关《基于C#的五子棋游戏开发.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .XX理工大学琴岛学院设 计 报 告课题名称:基于C#的五子棋游戏开发学 院:计算机工程系 专业班级:计科专升本14-21 学 号: 学 生: 指导教师:XX理工大学琴岛学院教务处2021 年 12月 18日学 生指导教师课题名称基于C#的五子棋游戏开发设计时间2021 .11.23-2021 .12.18设计地点动漫1 设计目的课程设计的目的就是培养学生的理论联系实际的能力。通过课程设计,使得学生能够加深对讲授内容的理解、累积经历、学会独立上机调试程序;并且逐步到达综合运用网页相关知识,真正掌握.NET技术的精华,从而到达熟练应用程序设计语言的目的。也为将来做较大的系统打下坚实根底。通过
2、本次课程设计,应该到达以下教学任务:稳固所学知识,培养学生的上机实践能力以及独立调试程序的能力,更主要的是使学生了解做工程的大体流程。每一个小组制定一题,工程成员要在工程经理的带着下,完成工程的所有内容。重点掌握ASP.NET设计开发流程,界面要友好,功能齐全,完成一个综合工程。指导教师评语系部教研室 意 见一、需求分析1.选题:通过学习window窗体应用程序的开发与实现,对C#程序开发逐渐产生了浓厚的兴趣,心中有了设计游戏的想法,通过学习和查资料慢慢对游戏制作有了一定的了解,后来通过深入学习,对五子棋游戏设计有了进一步了解,慢慢理清了其中的开发过程与原理,最终确定了基于C#五子棋游戏的设计
3、与实现工程。2.界面:1通过上网学习,对游戏界面风格有了一定的认知,于是决定走界面美观风。手游中的主界面给人一种简单明了的感觉,通常有模式关卡,让玩家越玩越带感,于是决定模仿它们,游戏主界面有四个模式,玩家可以选择不同模式进展对弈。如图1所示:模式四模式三模式二模式一图1.主界面2游戏模式一,双人对战模式。界面右侧有悔棋、返回、排行榜、关于、重新开场等功能按钮,点击各按钮,执行各功能。如图2所示:棋 盘关于按钮排行榜按钮悔棋按钮返回按钮重新开场按钮n图2.模式一界面3游戏模式二,人机对战模式。游戏界面中左部是棋盘,悔棋、返回、排行榜、关于、重新开场等功能按钮,此模式实现了人和电脑的交互。如图3
4、所示:棋 盘关于按钮排行榜按钮悔棋按钮返回按钮重新开场按钮n图3.模式二界面4游戏模式三,让子挑战模式。游戏界面中左部是棋盘,右部有悔棋、返回、排行榜、关于、重新开场功能选项按钮。和模式二不同的地方是让子,开局后棋盘中布好了让给电脑的白子。正所谓有人的地方就会有争斗,游戏中有菜鸟就会有高手。高手喜欢挑战,于是挑战模式应运而生。此模式的界面和模式二界面一样,在此不再重画。5游戏模式四,收拾残局模式。游戏界面中左部是棋盘,右部有摆棋、对战、悔棋、返回、再来一局功能选项按钮。和模式二不同的地方是开局,开局后玩家需先摆放棋子,然后点击对战按钮开场游戏。此模式界面设计参造模式二,不再重画。3.功能划分:
5、通过对五子棋游戏的分析与了解,可知其根本功能有开场、保存、翻开、悔棋、认输、和棋、返回、退出及聊天等功能。在这里,由于条件时间有限,仅实现悔棋、返回、重新开场及模式选择等功能。1模式选择功能:在翻开游戏后,出现在玩家面前的是模式选择窗口,即主窗口。玩家可通过点击相应按钮进入相应模式进展对弈。此功能参照手游及单机小游戏主界面简约美观的特性制作的,多模式的增加符合广阔玩家的喜好。2悔棋功能:在每个模式中都有悔棋功能,在模式一中每次悔棋退后一子,模式二到模式四每次悔棋退后两子,棋盘开局后就有的让子的棋子悔棋无效。人无完人,谁能不犯错,根据玩家的棋艺上下程度难以把握,为了让玩家不至于因电脑太强对开发者
6、产生怨言,从而有了悔棋功能,进而对五子棋菜鸟起引导作用,使其怀着开心的心情与保持兴趣走向棋圣之路。对于高手而言,棋品也是要有的,悔棋功能形同虚设而已。3从新开场功能:此功能是菜鸟提升棋艺的首选功能,当玩家进展游戏到中途时,因棋势不明,或要败时,不能承受这一现状,导致心情低落,怎么办?只需轻轻一点,一切回归起点,也就是初始化而已。4返回功能:此功能的作用是退出当前模式,回到游戏主窗口,也就是模式选择窗口。方便玩家在各个模式自由出入,尽情的展现自己的风采。5人机对弈电脑下棋功能:在模式二到模式四中,玩家的对手都是电脑,电脑棋力取决于开发者,在某中意义上来说,玩家在和开发者对弈也是正确的。此功能是程
7、序按照一定的算法循环扫描,算出己方和敌方最正确落子点,再判断出攻守,选出最终的落子点,落子后等待玩家落子。6让子功能:在模式三中,为了增加游戏难度,对棋艺大成者量身打造了让子功能。开局后,一般都是黑棋先行,在这里玩家执黑,让电脑1子,棋盘上变成了电脑执白先行1子,白棋落在天元位置上,难度一般。玩家赢后,挑战难度+1,玩家让电脑2子,棋盘上电脑执白先行2子,白棋落在天元位置左右两侧,难度适中,适合一段棋手挑战。玩家赢两局后,挑战难度+1,玩家让电脑3子,棋盘上电脑执白先行3子,考录到一般玩家没有如此高深棋力,因此白棋分散落在棋盘穿插线上,难度相对适中,适合一段及以上棋手挑战。让4子和5子也是一样
8、的原理,难度较高,适合二段及以上棋手挑战。对战后,会在棋盘中部上方显示让子数目,为迎合玩家的虚荣心理而设计。7判断胜负功能:在每个模式中都需要对对局进展胜负判断,进而产生了胜负判断功能。其功能原理是对玩家或电脑下的棋子进展循环扫描,对各个方向扫描黑白子双方是否形成五子连珠,根据形成五子连珠方判断胜负,根据判断弹出对应的胜负提示框。再根据所属模式对胜负后的对局进展参数修改,如:模式一和模式二,不管胜负只需对其进展初始化;模式三,玩家胜出,让子加一,难度增加,需对其让子参数进展修改,反之那么不进展任何处理操作;模式四,玩家胜出,对局胜出参数加一,照应必胜模式的让子布局功能,玩家失败那么不进展参数修
9、改操作等。8初始化界面功能:在每个模式中都需对窗口界面进展初始化,考录到原有界面运行后的效果略显呆板,为增加美观性,需要对各窗口进展导入图片处理,美化界面。根据对局情形,在棋盘中部上方显示提示文字,并在棋盘上显示存在的棋子,对各参数进展初始化处理。4.自定义类描述、各类方法描述及添加的命令响应。如表1所示: 表1.用到的类类名描述说明Form3模式一游戏窗口类,该类主要对该模式下的窗口初始化并对鼠标等事件消息进展处理,实现悔棋功能、返回功能、排行榜功能、关于功能、重新开场功能等。Form4模式二游戏窗口类,该类主要对该模式下的窗口进展初始化并对鼠标等事件消息进展处理,实现人机对弈功能、悔棋功能
10、、返回功能、排行榜功能、关于功能、重新开场功能、提示胜败功能等。Form5模式三游戏窗口类,该类主要对该模式下的窗口进展初始化并对鼠标等事件消息进展处理,实现让子功能、人机对弈功能、悔棋功能、返回功能、排行榜功能、关于功能、重新开场功能、提示胜败功能等。Form6模式四游戏窗口类,该类主要对该模式下的窗口进展初始化并对鼠标等事件消息进展处理,实现摆棋功能、人机对弈功能、悔棋功能、返回功能、排行榜功能、关于功能、重新开场功能、提示胜败功能等。二、总体设计1.游戏功能概述翻开程序,游戏开场运行,登录进入模式窗口,选择游戏模式窗口弹出,窗口中有四个模式选择按钮,点击按钮,分别弹出对应的模式一、二、三
11、、四窗口,完成具体模式的跳转。对于模式一,玩家点击鼠标进展下棋操作,判断点击点在棋盘内且无子时,在点击点画出棋子;如果点击点在棋盘外或有子时,那么不处理,返回等待鼠标命令。然后判断是否存在五子连珠,如果不存在五子连珠,那么返回等待鼠标命令;如果存在五子连珠,那么进展判断胜负并提示胜负信息,再调用OnStart()函数初始化模式一窗口,重新开场游戏。玩家点击悔棋按钮,调用悔棋功能函数OnHuiqi(),在窗口中重画棋盘,去掉最后下的一个棋子,把悔棋后存在的棋子重新画在棋盘上。玩家点击重新开场按钮,程序调用OnStart()函数,初始化模式一窗口,重新开场游戏。 对于模式二、三、四,玩家点击鼠标进
12、展下棋操作,首先调用MouseMove函数。此函数的作用是判断点击点在棋盘内且无子时,在点击点画出棋子,如果点击点在棋盘外或有子时,那么不处理,返回等待鼠标命令。然后调用gameOver()函数判断是否存在五子连珠,如果存在五子连珠,那么进展判断胜负并提示胜负信息,再调用OnStart()函数初始化这一模式窗口,重新开场游戏;如果不存在五子连珠,那么调用AiGo()函数,进展电脑扫描最正确落子点完成电脑下棋操作。再调用Over()函数判断是否存在五子连珠,如果不存在五子连珠,那么返回等待鼠标命令;如果存在五子连珠,那么进展胜负判断并提示胜负信息,再调用OnStart()函数初始化这一模式窗口,
13、重新开场游戏。玩家点击悔棋按钮,程序调用悔棋功能函数OnHuiqi(),在窗口中重画棋盘,去掉最后下的两个棋子,把悔棋后存在的棋子重新画在棋盘上。玩家点击重新开场按钮,程序调用OnStart()函数,初始化模式一窗口,重新开场游戏。开 始模式选择窗口1.绘制游戏进程图,如图4所示:模式四选择按钮模式三选择按钮模式二选择按钮模式一选择按钮模式四窗口模式三窗口模式二窗口模式一窗口退出排行榜是在点击点画出棋子鼠标点击弹起等待鼠标命令否悔棋关于从新开场等待鼠标命令判断点击点在棋盘内且无子鼠标点击弹起否判断点击点在棋盘内且无子是否判断是否存在五子连珠是在点击点画出棋子否弹出胜负提示框判断是否存在五子连珠
14、电脑扫描最正确落子点是是否弹出胜负提示框判断是否存在五子连珠图4.流程图三、 详细设计与实现1.悔棋功能的实现:为悔棋按钮添加类向导,再添加int变量bushu、qi400、wzq1919,用于记录先后下棋的具体坐标,以便于悔棋功能的实现。bushu用于记录下棋的落子数,qi400用于记录棋子的具体坐标,wzq1919用于记录棋盘上各点存在棋子的黑白及有无情况。悔棋功能的实现原理是重新画出棋盘及悔棋后存在棋子。先判断是否刚刚开局,bushu不为0,就执行悔棋命令,把最后落下的第bushu个棋子的信息初始化,再画出棋盘,重画悔棋后存在的棋子。模式一与模式二、三、四的悔棋不同之处在于悔棋棋子数。具
15、体代码如下:private void OnHuiqi() if(bushu0&star=true) if(colorwhite) colorwhite=false; else b = new SolidBrush(Color.White); g.FillEllipse(b, 20 * i + 20, 20 * j + 30, 20, 20); b.Dispose(); g.Dispose(); else if (wzqi, j = -1) Graphics g = this.pictureBox1.CreateGraphics(); Brush b; b = new SolidBrush(Co
16、lor.Black); g.FillEllipse(b, 20*i+20, 20*j+30, 20, 20); b.Dispose(); g.Dispose(); 悔棋功能的具体实现过程是先判断是否刚开局,有无可悔棋的棋子,如果有,就在窗口中重新画出棋盘,根据模式不同将最后落下的1个或2个棋子的信息初始化,再重新把悔棋后存在的棋子画在棋盘上。2.鼠标点击落子功能的实现: 添加鼠标事件处理函数MouseDown(),先获取点击点位置坐标,再判断出点击点是否在棋盘内且无子,当点击点可落子时,就在棋盘上画出棋子,让wzq1919记录该点棋子信息,把该手棋的具体坐标交给qibushu,用于悔棋操作,后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C# 五子棋 游戏 开发
限制150内