毕 业 设 计(论 文)开 题 报 告
1.结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写
2000字左右的文献综述
文 献 综 述
一、飞行棋历史起源
关于飞行棋发明的年代和发明人,在网络上似乎还没有相关的线索。比较一致的意见是他至少发明于大约二战以后,因为它是关于飞行的(flight game)。但也有人认为这一点没有说服力,因为它有可能是先有了规则再被冠上了飞行棋的名字,在飞机发明前就出现这一游戏是完全可能的。再说,它可以跟飞机(plane)没有直接关系,因为它的名字只是提到飞行(flight)。飞行棋(flight)应该是国人的原创,是中国玩具公司生产的,据说是为了纪念二战时飞虎队的卓越功勋,是pachisi游戏的变种。飞行棋这种转圈式的路程设计来自于空战中的“拉弗伯雷圆圈”。法国人拉弗伯雷对德国的“大圆圈编队”战术作了改进,使参加编队的飞机不但保持在一个水平面上飞行,而且可绕圆圈盘旋爬高。这样就可以利用防御队形进行盘旋以取得高度优势,伺机进行攻击。这就是著名的“拉弗伯雷大圆圈”。当时人们发明这种棋,是用一种先进的空战战术。
二、飞行棋游戏规则
(一)飞行棋简介。飞行棋是由四种颜色,一般是红黄蓝绿组成的,上面画有飞机的图形,最多可以四个人各拿一种颜色一起玩。飞行棋里有一个骰子,骰子是正方体的,有六个面分别是一个点、二个点、三个点、四个点、五个点和六个点。你只要转动骰子,骰子停下来的时候正面是几,你就走几步。但是刚开始时只有投到六,你的飞机才能起飞,并且投到六你还有机会再投一次。说明:到终点时走的步数要正好到达才算胜利,不然要返回来走
(二)飞行棋规则。游戏开始后,玩家轮流行动,每次通过掷骰子获得的点数来决定角色行走格数,角色必须在路道上按照顺时针方向行走,4种颜色的行动格间隔交替,最后终点前6格全部为一色格子,没有特殊作用,但是只有颜色对应的一方的角色行动到这里的时候要从这里进入。起点在路道旁,在最靠近自己基地的顺时针方向的上一家的基地颜色对应颜色的路道格的边上,起点出发的第一步就走到这一格。
每次掷到6可以出动一个角色,并且可以本回合再次掷骰子行动。最后,先全部角色到达终点的一方获胜。
游戏地图上设置有关卡:1、普通;2、地雷;3、暂停;4、幸运轮盘。
棋盘上的关卡只在棋子第一次移动遇到时有效。
起飞:只有在掷得6点后,方可将一枚棋子由“基地”起飞至起飞点,并可以再掷骰子一次,确定棋子的前进步数;在改进规则场中,只要掷得5点以上的点数就可以起飞。
连投奖励:在游戏进行过程中,掷得6点的游戏者可以连续投掷骰子,直至显示点数不是6点或游戏结束。
迭子:己方的棋子走至同一格内,可迭在一起,这类情况称为“迭子”。敌方的棋子不能在迭子上面飞过;当敌方的棋子正好停留在“迭子”上方时,敌方棋子与2架迭子棋子同时返回老家。若其它游戏者所掷点数大于他的棋子与迭子的相差步数,则多余格数为由迭子处返回的格数;但当其它游戏者所掷点数是6而且大于他得棋子与迭子的相差步数时,那么其它游戏者的棋子可以停于迭子上面,但是当该游戏者依照规则自动再掷点的时候,服务器自动走刚才停于迭子上面的棋子。
如果棋子在准备通过虚线时有其他棋子停留在虚线和通往终点线路的交叉点时:
a:如果对方是一个棋子,则将该棋子逐回基地,本方棋子继续行进到对岸;
b:如果对方是两个棋子重叠则该棋子不能穿越虚线、必须绕行。
撞子:棋子在行进过程中走至一格时,若已有敌方棋子停留,可将敌方的棋子逐回基地。
跳子:棋子在地图行走时,如果停留在和自己颜色相同格子,可以向前一个相同颜色格子作跳跃。
飞棋:棋子若行进到颜色相同而有弹簧一格,向前方颜色相同的的一格跳;若行进到颜色不相同而有弹簧一格,向后方颜色相同的的一格跳;棋子就不再移动。
终点:“终点”就是游戏棋子的目的地。当玩家有棋子到达本格时候,表示到达终点,不能再控制该棋子。传统飞行棋规则里,玩家要刚好走到终点处才能算“到达”,如果玩家扔出的骰子点数无法刚好走到终点出,多出来的点数,棋子将往回走。
在改进规则场中,如骰子点数多过于到终点的格数,也不需要后退,可以直接当胜利返回。
暂停:玩家停止一次投骰子的资格,本轮结束后,才可以再投。
幸运轮盘:当落入带问好箱子的格子,就进入幸运轮盘,里面有几种运气:前进、后退、交换位置、转移、暂停一轮、奖励一次、设置地雷、轰炸(将对方棋兵炸退6步),安眠药等。
三、游戏的界面元素
对一个游戏而言,游戏界面是一个相当重要的部分,界面的美观直接影响到玩家对游戏喜爱程度,下面主要介绍界面中的一些主要元素。
游戏界面元素有:地图、骰子、4方棋子(每方4个共16个角色)。
(一)地图
基地——对应颜色的大方格就是每方的基地,准备就绪后,4个角色就会出现在基地,在途中被吃敌方吃掉的角色,也会回到基地。
起点——基地边上特殊颜色的三角行格,如果掷骰子获得6,就可以点击一个基地中的棋子,跑到起点,同时消耗本次行动点。
终点——棋盘正中间的位置,任何一个角色到达终点就算走完全程,所有棋子到达终点就算胜利。
跳跃——棋子每次行动的落点如果刚好是本方颜色格子,那么能跳到逆时针方向的下一个本方颜色的格子。终点通道、直行格出外。每次行动只能跳跃一次。
直行格——每根箭头的起点位置即是对应颜色方的直行格。每步行动落到这一点,就能直行到箭头所指的格子。
终点前通道 —— 终点前的六格即是对应颜色方的终点通道,这里不会产生“跳跃”。
(二)骰子。飞行棋里有一个骰子,骰子是正方体的,有六个面分别是一个点、二个点、三个点、四个点、五个点和六个点。用来决定玩家走几步,正面是几就走几步,每次掷到6可以出动一个棋子,并且可以再次掷骰子,直至不是六为止。
(三)四方棋子。有四方棋子组成,分别四种颜色,每一方分别有四个棋子。
四、游戏的框架结构设计及流程
(一)游戏的框架结构。游戏的框架结构主要由玩家,鼠标,对战地图和游戏控制组成。玩家通过鼠标控制游戏中对战地图的操作对象——骰子和棋子,骰子和棋子遵循游戏规则,游戏规则决定棋子走的方向和步数,最后棋子所发生的变化映射到对战地图上。
(二)创建对战地图。在创建对战地图时,主要考虑点:幸运轮盘位置、地雷位置、时空隧道位置、暂停位置;关卡在对战地图上的对应的显示图形;玩家棋子骰子在对战地图上的显示图形。
(三)游戏类(game)。游戏类(game)功能:1.实现游戏初始化设置;2.展示游戏开始界面以及角色设置;3.控制游戏进度、实现游戏规则。
在游戏正式开始以前必须要清理掉没用的和错误的数据,为后面的正常运行准备一个“干净”的环境,这样程序的正确运行也为调试带来方便,所以首先要进行初始化。设计游戏类的关键:两个玩家轮流掷骰子,如果上轮走到暂停关卡,停掷一次飞行棋游戏类实现流程图。
五、游戏的实现
启动游戏后,跳出游戏选择界面,有四个角色可供选择,分别是戴高乐、艾森豪威尔、麦克阿萨、巴顿。分别双方分别选择自己的角色开始对决。
六、总结
通过编写这个程序,我体会最为深刻的一点是系统架构和设计模式的重要性。即使是对于一个并不大的程序,代码的组织都是非常重要的,因为这关系到日后的维护以及扩展。这个游戏之中,可以直接获得一个完整的飞行棋人机对弈算法的源代码级模块。但是对于系统的架构,却完全是自己的事情,几千上万行的代码需要通过合适的方法组织起来,从而使编写代码更加有条理,更加符合标准,这才是最重要的。
在刚开始编写这个程序的时候,我幼稚地认为其中最重要的是博弈树算法。但是头一个月编写程序的时候却发现程序越写越不容易维护,可见是我走错了方向。后来我向老师讨教,他告诉我:我们的先人早已为我们准备好了各种精良可用的现成算法,我们所要做的就是直接“拿来主义”罢了;但是对于代码的组织(也就是软件的架构)才是真正软件工业的核心部分,因为软件事实上是直接和经济挂钩的,因此我们必须在编写代码之前选择一种最为合适的方法来组织这些代码,否则我们将会失去更多的时间和金钱。
于是,我将以前写的代码全部删除,认真地思考了三天的时间。我开始发现其实飞行棋的设计并不是纯数学——正相反,数学只占了很小的一部分。它其实是一种哲学,一种有着数学美感的哲学。
参考文献
[1]郑艳. 基于Java的飞行棋的设计与实现[J]. 电子技术与软件工程, 2017(18):49-49.
[2]罗静, 杨平. 玩飞行棋小游戏,悟数学运算法则——一节有理数习题课的教学体验[J]. 中小学数学(初中版), 2016(z1):110-112.
[3]李冬云, 尹春祥. 基于Android平台的飞行棋游戏的设计与实现[C]// 中国计算机用户协会网络应用分会2013年网络新技术与应用年会. 2013.
[4]谢云燕. 飞行棋的设计与实现[J]. 计算机光盘软件与应用, 2012(3):198-199.
[5]葛圭 雷超然 罗勋阳 吴裕豪 陈其. VISUAL C++ MFC棋牌类游戏编程实例(附光盘)[M]. 人民邮电出版社, 2008.
[6]杜溦. 《有趣的飞行棋》教学设计[J]. 教育界:综合教育研究, 2016(9):69-69.
[7]彭建盛, 何奇文, 韦庆进,等. 一种智能飞行棋机器人及实现该飞行棋机器人的方法:, CN103566579A[P]. 2014.
[8][美]罗林斯.[美]莫里斯著,付煜等译.游戏架构与设计[m].红旗出版社.2005.
[9][美]clayton walnum著王国春,施妍然译.游戏编程 21天自学通[m].清华大学出版社,2001
[10]姜波.visual basic 6.0.net游戏开发实例[m].机械工业出版社,2005
[11]任哲等编著. Windows窗体 Windows应用程序设计(第2版). 北京: 清华大学出版社, 2007.9.
[12]Warren S J, Dondlinger M J. Examining four games for learning: Research-based lessons learned from five years of learning game design and development[J]. 2009.
[13]Mckenzie S, Coleman K, Chakman S. Using ePortfolios to develop career objectives in games design and development at an Australia University[J]. Shanxi Library Journal, 2013, 104(2):21-26.
[14]Barbosa A F S, Pereira P N M, Dias J A F F, et al. A New Methodology of Design and Development of Serious Games[J]. International Journal of Computer Games Technology, 2014, 2014(2):1-8.
[15]Symborski C, Barton M, Quinn M M, et al. The Design and Development of Serious Games Using Iterative Evaluation[J]. Games & Culture, 2016, 12(3).
[16]Marques J, Vasconcelos A, Teixeira L F. Senior-driven design and development of tablet-based cognitive games.[J]. Studies in Health Technology & Informatics, 2013, 189(189):133-138.
[17]蓝敏. 游戏项目驱动的高职院校“C#程序设计”教学改革研究[J]. 高教学刊, 2015(17):107-108.
[18]毕文斌, 孙明亮. C#Windows游戏设计[M]. 清华大学出版社, 2014.
[19]陈锐, 李欣, 夏敏捷. Visual C#经典游戏编程开发[M]. 科学出版社, 2011.
[20]夏敏捷. Visual C#.NET经典游戏开发[M]. 清华大学出版社, 2015.
毕 业 设 计(论 文)开 题 报 告
2.本课题要研究或解决的问题和拟采用的研究手段(途径)
飞行棋游戏是一个比较流行的游戏,本次实验设计主要是对它进行简化设计。但是仍然保留了它大多数的基本功能。基本需求如下:首先,飞行棋游戏是一个在棋盘上进行的游戏。所以其需要用一个总体棋盘来表示飞机的轨道,在该棋盘上主要对飞机进行游戏规则限定;其次,飞行棋玩家本次设计主要限定为两个玩家。故在这里需要设计两个大本营来代表两个玩家的角色;再次需要设计一个文本框来显示游戏玩家所摇出来的数字以模拟骰子。最后,游戏需要有一个终点,当玩家的飞机抵达终点时进行判断游戏是否终止。本次课程设计所安排的玩家角色为两人,在地图上呈对角分布,玩家行走路线为逆时针。每个玩家拥有两架飞机进行游戏。详细游戏规则如下:
飞机出动规则:
首先由玩家A点击“开始”按钮摇骰子,显示数字N,当数字框显示的数字N=6时才允许出动一架飞机,如果没有摇到数字6则由玩家B进行相同的操作。轮流操作,直到有飞机从基地中出发。当某个基地中存在一架飞机时,游戏玩家通过鼠标选择飞机进行游戏,例如:当摇出的数字为非6时,可以选择已经出动的飞机进行游戏,数字为几就前进几步;若为数字为6时可以选择未出动的飞机,使飞机出基地。当基地中不存在飞机时,摇出数字后玩家通过鼠标选择希望前进的飞机进行游戏,数字为几就前进几步。
飞机在地图中前进时的规则:
点击“开始”按钮,数字显示后,通过鼠标选择需要前进的飞机,数字为几就前进几步。当飞机在地图上前进时,若两个玩家的飞机均落在了同一个地点,那么后去的飞机将把前一个落在该地点的飞机弹回飞机本来的基地中,被弹回的飞机需要玩家根据“飞机出动规则”再次出动飞机。
飞机到达目的地规则:
玩家需要将自己基地中的飞机通过指定的路线进入目的地,在到达目的地之前,如果摇出的数字刚好使得飞机进入目的地,则该飞机成功完成任务。如果摇出的数字M多出飞机到达目的地本应该对应的数字N时,则飞机从目的地倒退M-N步,直到某个玩家的飞机全部到达终点,该玩家获胜,游戏结束。
利用Visual Studio 2010以及SQL Sever 2008软件制作飞行棋游戏。
课题任务的内容:
1、在广泛查阅国内外文献的基础上,熟悉总结飞行棋游戏的规则。
2、采用C#语言编写程序,并建立Windows窗体应用程序。
3、建立数据库并连接Visul Studio 2010。
4、在此基础上,对飞行棋的设计进行系统研究以实现飞行棋游戏的运行。
课题任务的要求:
1、设计颜色要鲜明,美观大方。
2、设计内容要全面,内容健康,活泼向上。
3、思路要清晰,步骤完整。
4、程序要明确,并可实现重复游戏和退出等功能