基于VHDL的贪吃蛇游戏设计MK5
基于VHDL的贪吃蛇游戏设计
摘要
贪吃蛇游戏是⼀条蛇在封闭围墙⾥运动,围墙⾥随机出现⼀个⾷物。通过按四个光标键控制蛇的上下左右四个⽅向移动,蛇头撞倒⾷物,则⾷物被吃掉,蛇⾝体长⼀节,接着⼜随机出现⾷物,等待蛇来吃。如果蛇在移动中撞到墙或⾝体交叉蛇头撞到⾃⼰的⾝体则游戏结束。
本设计是基于VHDL语⾔的贪吃蛇游戏。贪吃蛇游戏是⼀个经典⼩游戏,多年来经过不断发展形成了各种不同的版本,风靡世界各地,也通⽤于各种不同平台。即使各种⼤型游戏不断涌现,贪吃蛇依然充满魅⼒。
贪吃蛇游戏操作简单,引⼈⼊胜,经久不衰。作为编程课题既有⾜够的挑战难度,⼜有⼀定的趣味性。通过游戏程序的设计,提⾼编程兴趣与编程思路,巩固VHDL语⾔中所学的知识,加深理解,实现理论与实际相结合。
关键词:贪吃蛇;VHDL;
Abstract
Snake game is a snake in the closed wall movement, random a food in the wall. By four cursor keys to control the snake up and down or so four direction, head of the snake down the food, the food is eaten, long snake body section, then the random food, waiting for the snake to eat. If the snake hit a wall or on the move cross the snake hit your body is game over.
This design is based on the VHDL language snake game. Snake game is a classic game, over the years, through continuous development has formed a variety of different versions, and is popular all over the world, is also common in a variety of different platforms. Even big games of various kinds are springing up constantly, the snake is still full of charm. Snake game is simple, fascinating, enduring. As a programming task is both enough to challenge the difficulty, and have fun. Through the game program design and improve interest in programming and programming ideas, consolidate the knowledge learned in the VHDL language, deepen understanding, integrating theory with practice.
⽬录
摘要....................................... 错误!未定义书签。Abstract ................................................. I II 第⼀章引⾔............................................... I X
1.1 本⽂研究的意义...................................... I X
1.2 国内外研究现状...................................... I X
1.3 本⽂的研究内容及组织结构............ 错误!未定义书签。
1.3.1本⽂的研究内容..................... 错误!未定义书签。
1.3.2本⽂的组织结构..................... 错误!未定义书签。第⼆章基于VHDL的贪吃蛇游戏总体设计... 错误!未定义书签。
2.1 基于VHDL的贪吃蛇游戏设计功能要求... 错误!未定义书签。
2.2基于VHDL的贪吃蛇游戏设计框图........ 错误!未定义书签。
本章⼩结................................ 错误!未定义书签。第三章基于VHDL的贪吃蛇游戏硬件设计.. 错误!未定义书签。
3.1 微处理器模块........................ 错误!未定义书签。
3.2 电源模块............................ 错误!未定义书签。
3.3 键盘模块............................ 错误!未定义书签。
3.4 显⽰模块............................ 错误!未定义书签。第四章基于VHDL的贪吃蛇游戏软件设计... 错误!未定义书签。
4.1基于VHDL的贪吃蛇游戏软件程序设计.... 错误!未定义书签。
4.2 时钟模块设计........................ 错误!未定义书签。
4.3 计时模块设计........................ 错误!未定义书签。
4.4 控制模块设计........................ 错误!未定义书签。第五章基于VHDL的贪吃蛇游戏测试结果与分析错误!未定义书签。
5.1基于VHDL的贪吃蛇游戏各部分模块测试结果与分析错误!未定
义书签。
5.1.1 键盘模块.......................... 错误!未定义书签。
5.1.2显⽰模块........................... 错误!未定义书签。
5.2基于VHDL的贪吃蛇游戏软件测试结果与分析错误!未定义书签。第6章全⽂总结 ...........................
错误!未定义书签。
6.1研究成果............................. 错误!未定义书签。
6.2进⼀步研究建议....................... 错误!未定义书签。结论....................................... 错误!未定义书签。致谢. (39)
参考⽂献 (40)
附录:PLC部分程序清单................... 错误!未定义书签。
第⼀章引⾔100个python练手项目
1.1 本⽂研究的意义
贪吃蛇游戏玩法虽然简单,其意义却绝不简单。贪吃蛇的历史⽐我们想象得要久远得多,最早的贪吃蛇游戏原型诞⽣于1976年。不过这最早的⼀版是⼀款街机游戏。这个游戏名为Blockade,是个双⼈游戏,发⾏商为Gremlin。游戏的玩法⽐较特殊,蛇不会向前移动,⽽只会尾巴不动、头越来越长。其实它的设定也不是蛇,⽽是两个⼩⼈⼀边向前⾛⼀边在⾝后筑墙……规则是谁先撞墙谁输。
这个游戏是相当成功的,所以很快产⽣了许多效仿者。其中就包括⼤名⿍⿍的Atari公司,Atari公司在1978年开发了⼀款名为surround的游戏,基本上是blockade的Atari 2600平台移植和改进版。
已知最早的个⼈电脑版本,是TRS-80型电脑上的Worm程序,作者Peter Trefonas。TRS-80型,是由坦迪公司(Tandy Corporation)出品,TRS-80型1977年上市,1981年停产,最早的⼤规模⽣产个⼈电脑之⼀。它的本体售价约600美元,拥有⼀枚1.77M主频的CPU,4k-48k的内存,全键盘,TRS-DOS操作系统,浮点BASIC语⾔。TRS-80可外接磁带、软盘或者硬盘存储(那时的软盘容量85k到180k不等;硬盘容量5兆,价格1500美元)。随机附送⼀台⿊⽩电视机改装的显⽰器,但因为只有1k显存,所以只能显⽰64*16的字母/符号矩阵,不能单独显⽰真正的像素点。不过利⽤符号模拟的⽅法,可以达成
128*48的虚拟分辨率。
到了1991年,MS-DOS 5.0 随机附送了⼀个名为Nibbles的贪吃蛇类游戏,是⽤QBasic写的。这个游戏是作为QB的范例程序⽽附送的,考虑到那时候MS-DOS的普遍性,⼏乎所有的电脑应该都有这个。它使⽤标准的80*25字符显⽰模式来模拟80*50的⽹格。
贪吃蛇游戏的巅峰是1997年,当时年轻的诺基亚设计⼯程师、⽤户界⾯设计师Taneli Armanto受命为即将发售的诺基亚6110⼿机开发⼀款全新的随机游戏。这个任务其实对Taneli来说有些不同寻常。他在写的回忆录中说:“这其实是⼀个甜蜜的误会。我的兴趣爱好是传统的桌⾯游
戏,⽽并不是电⼦游戏。所以当诺基亚6110产品项⽬组我为⼿机开发⼀款⼩游戏时候,我不禁怀疑他们是不是弄错了。不过当时我也⾮常⾼兴能接受这个挑战。”
Taneli最后拿出了贪吃蛇(Snake)。初版贪吃蛇以其简洁、耐玩⽽著称。整个系统⽐最早的Blockade更加简洁,没有对战,没有对射。画⾯也同样简洁,任何⼀块灰阶屏幕都可以显⽰它。它的规则也同样简单,在⼀块20×11的长⽅形区域驰骋,满分最⾼可达2008 分(总分=屏幕上的所有点x级别’1-9′ +100分奖励)。挑战极⼤,Taneli本⼈的记录不过1125分。
贪吃蛇⼀经推出就⼴受欢迎。芬兰甚⾄⾃1999年开始举办年度贪吃蛇⼤赛。
从诺基亚6110开始⾄今,⼀共有⼤约4亿部诺基亚⼿机搭载着贪吃蛇游戏推向市场。这让贪吃蛇成为游戏史上传播最⼴的作品之⼀。贪吃蛇被很多⼈认为是⼿机游戏的第⼀步。
1.2国内外研究现状
贪吃蛇进化史
贪吃蛇系列在过去这些年⾥有过很多次进化:
·Snake II –画⾯有所改进,此外贪吃蛇撞上屏幕边缘以后会从屏幕的另⼀⾯出现。这本来是个Bug,但由于⼴受欢迎,在后续的版本中得到了保留。
·Snake Xenzia –⽤于现在的单⾊屏、普及型彩屏⼿机。
·Snake EX –彩屏⼿机版本,画质提升到超任的⽔平。这⼀代贪吃蛇开始⽀持蓝⽛、红外对战。
·Snake EX2 –预装在部分S40 ⼿机上。
·Snakes – 3D版,为诺基亚N-Gage开发。同样⽀持蓝⽛对战。画质进⼀步提升。后被预装在诺基亚N70、N73等N系列⼿机上。游戏可以运⾏在其它S60智能⼿机上。
·Snake III - 另⼀个3D版,贪吃蛇的形象变得更像现实中的蛇。预
装在诺基亚5230、6300等⼿机上,⽀持蓝⽛对战
·Snakes Subsonic –这是Snakes的续集,在第⼆代N-Gage平台推出。有不少⼈认为初版贪吃蛇才是最经典的贪吃蛇,Taneli ⾃⼰也更偏爱初版贪吃蛇。尽管他现在的⼯作已经不需要编程,但他还是⾃学了Python 编程语⾔,⽤来练⼿的项⽬就是复刻初版贪吃蛇。现在甚⾄可以在Taneli 的个⼈⽹站上下载到复刻的初版贪吃蛇,画⾯和规则忠于初版设定,适⽤于所有S60V3机型。Taneli现在还在考虑是不是让贪吃蛇⽀持触摸功能以适应流⾏的触屏⼿机。
1.3本⽂的研究内容及组织结构
1.3.1本⽂的研究内容
本游戏设计是⼀款以FPGA实验板为控制端,显⽰器为终端的贪吃蛇游戏是基于DE2实验板,⽤QuartusII⾃带的nios核做⼀个32位的CPU,载⼊程序后就可以通过DE2板上的4个按键和显⽰器来玩贪吃蛇的游戏了。同时在实验板的LCD上显⽰玩家所得的分数。由于使⽤的是VGA格式传送图象信号,所以显⽰器要求⽀持VGA格式。
1.3.2本⽂的组织结构
论⽂共分六章,对于基于VHDL的贪吃蛇游戏总体设计以及测试结果进⾏详细阐述。各章内容安排如下:
第⼀章是本⽂的引⾔,主要阐述课题的研究意义和国内外研究的现状,提出了本⽂研究的主要内容。
第⼆章介绍了基于VHDL的贪吃蛇的构成,给出了基于VHDL的贪吃蛇的结构框图。
第三章介绍了基于VHDL的贪吃蛇游戏硬件电路的设计,包括微处理器模块、电源模块、键盘模块以及液晶显⽰模块,详细的介绍了这4个模块的⼯作原理。
第四章根据游戏所提出的功能要求,完成基于VHDL的贪吃蛇游戏的软
件设计。
第五章将基于VHDL的贪吃蛇游戏进⾏测试,从设计的4个模块到整个游戏软件的测试,从⽽验证该游戏的可⾏性。
第六章作为全⽂的总结,阐述本⽂所完成的成果,并对游戏未来的改进进⾏展望。
第⼆章基于VHDL的贪吃蛇游戏总体设计总体设计
2.1基于VHDL的贪吃蛇游戏设计功能要求
(1)蛇撞“墙”、边或者游戏时间到,则游戏结束。
(2)⾷物出现的地⽅是随机的,在某个地点出现的时间是蛇⾛15步的时间,如果15步之内没有被吃掉,它就会在其它地⽅随机出现;
(3)⽤数码管显⽰得分情况和游戏的剩余时间(时间满为0~59共60秒),每吃掉⼀个⾷物就加⼀分。
2.2基于VHDL的贪吃蛇游戏设计框图
基于VHDL
的贪吃蛇游戏通过主控制器模块控制和协调各部分模块⼯作,电源模块为其提供所需的稳定电源。按键模块⽤于控制游戏的开始与结束以及控制贪吃蛇的移动⽅向。贪吃蛇游戏的所有状态都可以在显⽰模块中显⽰。图 2.1 为基于VHDL 的贪吃蛇游戏结构框图。
第三章基于VHDL 的贪吃蛇游戏硬件设计
3.1微处理器模块
在本⽂设计的游戏中,⽆论是输出信号,还是游戏控制处理都需要依靠为微处理器来完成,所以微处理器的选择对于本设计还是很重要的。
3.2电源模块
3.3按键模块

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。