基于FPGA的俄罗斯方块游戏设计开题报告

 2022-01-11 09:01

全文总字数:6844字

1. 研究目的与意义(文献综述)

1. 目的及意义(含国内外研究现状分析)

1.1研究目的与意义

俄罗斯方块是阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏,最初在运行在个人电脑平台上,后来授权给任天堂以及其它游戏公司,逐渐移植到各种游戏机以及电脑等平台上,受到广泛玩家的喜爱,也是从1970左右刚开始兴起的pc端游戏中十分出名的一款游戏。俄罗斯方块的游戏规则十分简单,由4个小正方块组成的田字形,t字形,7字形,反7字形,z字形,反z字形,1字形共七种组合形状会随机的从屏幕顶端下落并下落到底部边框或者其它已经下落的方块上停止,新的方块会在前一个方块停止移动后开始下落。玩家可以在方块下落过程中通过按键控制图形的左右移动并且可以使图形进行左右90°旋转和快速下落,最终目的是使下落的图形通过组合能满至少一整个横行,使整个横行的方块消除并获得分数,而当方块堆积到游戏区域最顶端无法消除时,游戏结束。虽然游戏规则相对简单,但是要想达成很高的分数对于玩家的规划能力和快速决策以及操作能力提出了很高的要求,玩家需要通过目前的堆叠状态和正在下落的方块形状以及下一个方块的提示来进行综合考量,考虑各种下落方案对后面游戏的影响[17]

在实际开发中,俄罗斯方块对于设备的要求也很低,通过适当的逻辑电路和最普通的单色液晶屏幕,按键,运行烧录的对应的代码就能运行该游戏,阿列克谢·帕基特诺夫在1989年将俄罗斯方块授权给任天堂之后,任天堂就在同年的ces展会(consumer electronics show)上发售了俄罗斯方块,并在第一代game boy游戏机上运行。而当时game boy使用的是分辨率为160x144的4级灰度的2.45寸lcd(液晶显示屏),可见俄罗斯方块对硬件要求并不是很高。同时,虽然俄罗斯方块玩法简单,对于硬件的要求并不高,但是游戏本身的内核和如今的大多数游戏的内核相同,通过快速决策操控对象的移动,按照游戏规则达成一定目标获得分数。其中涉及通过按键对游戏角色的操控,游戏内部通过代码对游戏状态进行的判定以及对于游戏状态通过显示设备的实时显示反馈,这种用户输入-系统判定-显示反馈的模式在游戏中是基本不变的[19]。同时,通过fpga技术,更方便于通过这个课题巩固vhdl语言和编程思路,也可以通过fpga的可编程性不断尝试,找出实现游戏开发的最好方案。

fpga技术相教于全定制芯片可以在基础电路之上通过编程来满足设计需求,开发速度更快,和全定制投片生产相比设计周期短,费用低,风险小。在中小规模应用更加合适,实用性更强。对于俄罗斯方块这种相对简单但是在基础玩法上又可以产生更多变体的游戏,并不适合完全依靠芯片投片生产,通过fpga技术,不仅成本更加低廉,而且通过编程可以灵活对游戏界面和玩法上进行快速调整和更新。所以相较于完全基于软件或者硬件的实现途径,选择fpga实现俄罗斯方块游戏是相对经济且灵活的方案,同时,大部分基于软件的游戏在防止盗版传播上做的并不是很好,而fpga采用烧录的方法能提高对产品逆向工程的门槛,能为软件的知识产权提供更好的保护。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

2. 研究的基本内容与方案

2. 研究(设计)的基本内容、目标、拟采用的技术方案及措施

2.1基本内容目标

本次毕业设计的基本内容是通过基于vhdl语言设计一款俄罗斯方块游戏,通过编程随机产生不断从游戏区域顶端匀速下落的方块,形状为由四个正方形组成的田字形、长条形、z字形、反z字形、7字形、反7字形、t字形。方块不断下落并在触及区域底部或者其它方块时停止,玩家通过按键控制方块的左右移动,顺时针和逆时针旋转,不断填充游戏区域,并且在方块填满一整个横行时就消除,获得相应的分数,并且被消除的行上方堆积的图形自然下落。

2.2技术方案
2.2.1随机数生成器

游戏中方块的形状是随机的,所以为了保证生成方块的随机性采用随机数生成器。由于vhdl语言中没有直接可以使用的随机数生成器,所以需要自己编写。最简单的方式就是设计一个7进制的计数器,使其随一个较快的始终循环计时,这样在读取的时候,计数器的计数就是随机的[8]。另一种随机数产生的方法是通过产生一个伪随机数,在通过将伪随机数对7取余,就可以得到位于0-6之间的随机数。

2.2.2系统时钟

开发板上的晶振能提供50mhz左右的时钟,但是对于游戏来说需要1hz的时钟作为基准时钟,这就需要通过分频来获得1hz时钟[10]。分频本质上就是计数器,每计算到25000000个上升沿就将输出电平反转,这样就能产生1hz时钟。同理还可以获得5hz等其它系统需要的时钟。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

3. 研究计划与安排

3、进度安排

第1-3周:查阅相关文献资料,明确研究内容,了解本课题研究所需的理论知识,初步确定设计方案,撰写开题报告。

第4-5周:对系统所涉及各部分进行模块划分,并对各个模块的基础原理知识进行系统学习,掌握基于vhdl和fpga开发的方法,学习基于vga显示原理和实现。

第6-12周:完成基于完成各个模块的编写和连接,完成基于fpga的俄罗斯方块游戏设计。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

4. 参考文献(不低于12篇)

4、参考文献

[1]孟芸, 朱肖安, 罗刘敏, et al. 基于c语言的俄罗斯方块的设计与实现[j]. 硅谷, 2014(23):19-20.

[2]李乔丹, 刘昌华. 基于fpga的吃豆人游戏设计与实现[j]. 信息通信, 2017, no.180(12):130-132.

[3]郭璨, 杨旭辉, 张志昂. 基于单片机的俄罗斯方块设计[j]. 时代农机, 2018, 45(09):232-233.

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。