
2048经典小游戏回归,设计资料开放共享,欢迎挑战-电路方案
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
《2048》经典游戏迎来全面升级与回归,此次以全新的电路设计方案呈现,并开放所有设计资源供玩家和开发者学习交流。加入这场智慧与策略的挑战吧!
游戏功能:该游戏的界面由4×4共16个方格组成,每个方格可以存放一个数字。玩家通过操纵Basys3开发板上的上下左右四个方向键及中央的重置键来控制方格中的数字移动。游戏画面可以通过VGA接口或Pmod接口oled进行显示,在成功时会显示出笑脸图案,在失败时则显示骷髅图案。
在游戏过程中,每当玩家按下一次方向键后,所有数字将按照按键的方向移动一次,并且如果该方向上有相邻的相同数字,则它们会合并为原来的2倍。同时会在反向随机生成一个新的数字。玩家的目标是通过不断组合来拼出数值达到2048或者更高以完成游戏。
DIY动手指南:
步骤1: 材料准备
硬件包括Basys3开发板,VGA连接线和显示器(可选),以及SH1106驱动的OLED显示屏。软件方面需要使用Vivado 2016.2版本。
步骤2: 系统框架设计
整个系统主要由游戏主状态机、存放数据的游戏寄存器{S16}、移动模块move、随机生成数模块gen及其背后的随机数发生器ran,以及用于显示的VGA和OLED驱动程序构成。
步骤3: 编程实现
接下来将按模块进行详细说明。
- 按键去抖:为每个按键设计了一个长度为32位的FIFO缓冲区。每过10ms时该缓冲区会被刷新一次,只有当所有比特均为1或全为‘0’时才认为输入有效。
- 游戏数据寄存器:使用了4×4=16个4bit宽的寄存器来存储每个格子中的数值。采用以2的幂次形式储存数字(例如512被表示成9,而128则为7)。特殊情况是0直接用0表示。
- 游戏主状态机:主要负责操作游戏数据寄存器{S16}内的值,并通过更改这些值来推动游戏进程。此状态机包括检测按键和移动、生成随机数以及检查当前的游戏状况等几个阶段。
- 移动逻辑组合电路:该模块用于处理数字的左右上下四种方向的移动,每次操作4条线但其实质上是相同的,因此只需一个通用模块即可完成所有功能。
- 随机数生成器和产生模块gen:此部分负责在游戏过程中随机插入新的数值元素以增加挑战性。它为不同的情况(例如2个空格、3个或更多)准备了不同大小的随机数集,并且确保只有当玩家进行了“有效移动”后才会添加新数字。
- VGA显示模块:使用640×480分辨率,时钟频率为25MHz来完成图像输出。通过特定算法将像素点转换成色块以适应OLED显示屏的要求。
步骤4: 演示视频展示游戏的完整过程和效果
全部评论 (0)


