1、挑战迷宫挑战迷宫 1、申请、申请题目:题目:挑战迷宫挑战迷宫 题目,命题描述(5 号宋体) 这是一个基于 FPGA 控制点阵板显示的益智趣味类小游戏,游戏中玩家通过键盘 键控制控制人物上下左右移动,从起始点出发,目的是走到迷宫的出口。游戏有着友好 的用户界面,而且有多种模式,多种地图供玩家选择。 1.普通不计时模式:玩家可以看到整个迷宫地图,游戏没有时间限制; 2.普通计时模式:玩家可以看到整个迷宫地图,必须在 20 秒内找到出口,否则游戏失 败; 3.高级不计时模式:玩家并不能看到整个迷宫的地图,只能看到其周围的 2 步以内部分 路径,其他路径需要靠自己移动来探索,这样就仿佛置身迷宫之中,更
2、有可玩性,游戏没有 时间限制; 4.高级计时模式:同样玩家:玩家并不能看到整个迷宫的地图,只能看到其周围的 2 步 以内部分路径;必须在 20 秒内找到出口,否则游戏失败。 2、课题背景、课题背景: 存在问题、应用背景 走迷宫是大家所非常熟悉的一款小游戏,规则简单,老少皆宜,可以段炼玩家的判断力 和观察力;而且其不同于普通的走迷宫游戏,增加了一些趣味性玩法及创新点,可供人们平 时娱乐所用。该游戏主要在 LED 点阵板上实现,做成电脑软件效果将更佳。 3、项目规划:、项目规划: 功能、指标、规模 功能:功能: 1. 游戏开始之前,玩家通过键盘选择游戏模式和游戏地图,然后启动游戏,其中 有相应的指
3、示灯提示; 2.点阵板显示中,以黄色表示玩家,绿色表示迷宫出口,红色表示迷宫墙壁;玩 家通过键盘上相应的键控制人物的上下左右移动。胜利或失败后有相应的画面 出现,能够通过按键重新启动游戏。 3.计时模式中,数码管显示倒计时; 指标:指标: 游戏中主要采用 16X16 点阵板显示地图,计时模块中,时间限制为 20 秒比 较合理。 规模:规模: 由于涉及数据结构在硬件语言中的实现与优化, 具有多种模式下点阵板的操 作,本项目难度为中上。由于硬件语言中使用了大量矩阵,所有功能都实现后, 占用的逻辑单元的总数在 5000 多左右。 面板(显示) 、操作、规则 显示面板:显示面板: 16X16点阵板 按
4、钮 模式1 按钮 5 按钮 0 按钮 左 按钮 模式2 按钮 6 按钮 7 按钮 8 按钮 模式4 按钮 模式3 按钮 B 按钮 下 按钮 启动 按钮 上 按钮 A 按钮 右 显示面板 键盘 数码管:第一位表示关卡,后两位表示倒计时时间。 LED 显示灯: 操作操作: 游戏规则:游戏规则: 本游戏的规则相对简单。 玩家使用键盘操纵一个人, 在规定的时间内走到迷 宫出口即可胜利。 输入、输出接口 键盘输入输出接口; 点阵板扫描、显示接口。 4、实现方案实现方案: 核心问题 1. 多种模式下的选择和表示; 2.对 LED 点阵板中迷宫地图的显示和人物移动的显示控制; 3. 点阵中只显示人物周围的
5、2 步以内部分路径。 解决方案 1. 对于多种模式, 使用状态机的不同状态来表示, 这样就可以通过状态来作为后 面点阵显示模块的使能信号; 2. 点阵板的显示: 点阵板的行采用扫描信号的形式扫描,16 位行输出信号依次为: ”1111111111111110”,”1111111111111101”,”1111111111111011,“11111111111101 11“,“1111111111101111“等(低电平使能) ;当相应的行选中时,输入相应的 红灯 16 位列信号,绿灯 16 位列信号,这样红灯和绿灯的信号就有 16X16 个需要存储; 分别用两个 16X16 的矩阵存储红灯和绿
6、灯的信号,当点阵板第一行选 中时,输出矩阵第一行的 16 位信号;当点阵板第二行选中时,输出矩阵第 二行的 16 位信号;以此类推。 采用一个 16X16 的矩阵显示人物的位置,事先知道人物点的位置坐标, 当上下左右键按下后,就修改该矩阵中的值,最后把该矩阵和红灯信号的矩 阵和绿灯信号的矩阵相与作为红灯和绿灯的输出。 3. 定义一个初始化为全 0 的 16X16 的矩阵,当每次人物点移动时,把人物坐标 周围 2 步以内的点对应的矩阵中的值修改为 1;输出的红灯信号的矩阵和绿 灯信号的矩阵与这个矩阵相与输出。 5、系统结构:系统结构: 系统框图 键盘 倒计时 关卡选择状态机 数 码 管 数 码 管 数 码 管 点阵控制点阵扫描显示 16X16点 阵板 LED提示灯 LED 灯 模块功能描述 分频器模块分频器模块 fenping: 对输入的 2MHz 信号进行不同的分频,分别产生 1KHz、100Hz、2Hz、1Hz 的时钟 信号。 键盘键盘模块模块 keyboard: 外接键盘,当键盘按下键时,输出按下的键值(用 4 位二进