FPGA实现俄罗斯方块 (三)

简介: 笔记

一. 完整视频演示


欢迎关注 微信公众号 FPGA之旅 回复 FPGA俄罗斯方块 获取完整代码哦。

如果觉得不错的话,欢迎给点个赞哦。

地址 :完整视频演示


在这个项目中,主要介绍一下两个功能 : 1. 当前图形的移动,旋转。 2. 地图的存储以及消行。这两个功能介绍完成后,也预示着本项目顺利结束,需要完整项目的话,可以自行获取哦。


二. 当前图形的移动,旋转


通过上一篇文章中的下一个图形的数据,传到当前图形中,我们就可以对这四个方块进行我们想要的操作啦。


下落 : 下落其实就是方块的y值加一,每隔一定的时间,定时器产生一个使能信号即可。

左右移动: 通过按键的输入,将方块的x值加一或者减一即可。这里也要注意是否达到了地图的边界,否则不能移动。

旋转 :这一部分如果用算法来的话,是比较复杂的。这使用暴力的方法,将每一个图形的坐标旋转的变化量都计算出来,然后写入代码中就可以了,这样使得代码就有点大了,不过没事,可以实现效果(#.#)。如下操作,图形3的每一次旋转的坐标变化都计算出来。

5.png

三. 地图的存储以及消行


当当前图形在移动的过程中,碰到了地图中的方块的时候,就将当前图形存入地图中,并且更新下一个图形。然后当一行全部存储方块后,就继续消行,当前行的值等于上一行。每一行都进行这个操作。


1.地图的大小为10*20,这里用一个memory的类型存储即可,reg[9:0] Row[19:0]。初始值全部都为0,如果值为1的话,就表示当前位置存储了方块。

2.利用当前图形,如果当前图形移动到了地图的最后一行,后者碰到了存储中的方块的话,就将当前图形的数据存入地图中。


6.png

3.如果一行中,全部存储了数据的话,就将其进行消行处理。每一行都进行这个处理。

7.png

4.完整的rtl图如下

8.png

以上就完全介绍了俄罗斯方块。觉得可以都话,可以给点个赞哦。

最后 欢迎关注 微信公众号 FPGA之旅 回复 FPGA俄罗斯方块 获取完整代码哦。


公众号:FPGA之旅

目录
相关文章
|
存储 算法 IDE
如何用FPGA解一道初中数学题
如何用FPGA解一道初中数学题
164 0
如何用FPGA解一道初中数学题
|
8月前
|
算法 定位技术 C语言
51单片机实现俄罗斯方块游戏编程
设计了一款基于AT89C51单片机的俄罗斯方块游戏机,使用LCD12864液晶显示,按键控制方块移动与变形。游戏中,7种不同形状的方块随机下落,填满一行得分,满屏则游戏结束。包含电源、单片机最小系统、LCD和按键模块的硬件电路通过Proteus进行了仿真,展示了游戏运行、得分和计时等。代码部分展示了检查碰撞和更新地图的函数。
165 1
|
定位技术 异构计算
|
存储 芯片 异构计算
电子技术课程设计基于FPGA的音乐硬件演奏电路的设计与实现
设计一个乐曲演奏电路,能够自动播放编写好的音乐。要求将音乐通过实验箱上的喇叭播放出来,用发光二级管显示出乐曲的节拍。 (附加功能:本设计在题目所要求的功能全部实现的基础之上又添加了许多附加功能,所有的功能将在“工程设计总述”中阐明,特此声明。
254 0
|
存储 Android开发 异构计算
|
异构计算
|
异构计算
FPGA乐曲演奏电路设计之music1
FPGA乐曲演奏电路设计之music1
107 0
|
编解码 算法 IDE
基于单片机的俄罗斯方块游戏机设计
本设计是通过STC89S52单片机来实现俄罗斯方块游戏的设计,使用C语言进行编程,并通过Proteus来进行仿真。本设计要实现的基本功能是:应用按键来控制方块的变换与移动;消除一行并计分;消除多行额外奖励记分,方块堆满时结束游戏等俄罗斯方块的基本功能。
基于单片机的俄罗斯方块游戏机设计
|
芯片 异构计算
FPGA设计中遇到的奇葩问题之“芯片也要看出身”(一)
FPGA设计中遇到的奇葩问题之“芯片也要看出身”(一) 昨夜西风凋碧树。独上高楼,望尽天涯路 2000年的时候,做设计基本都是使用Xilinx公司的Virtex和Virtex-E系列芯片。那时候Altera技术实力还比较弱,基于Altera的芯片做设计是要被大家diss的。
6168 0
FPGA设计中遇到的奇葩问题之“芯片也要看出身”(一)