点阵赛车游戏
- 格式:doc
- 大小:1.03 MB
- 文档页数:26
电玩城赛车活动策划方案一、活动背景:随着电子游戏行业的迅猛发展,电玩城已成为年轻人的热门娱乐方式。
为了吸引更多的顾客,提高电玩城的知名度和美誉度,我们计划举办一场电玩城赛车活动。
通过该活动,我们希望给顾客带来刺激和乐趣的同时,也传达电玩城的品牌精神和价值观。
二、活动目标:1. 提高电玩城的知名度和美誉度。
2. 增加顾客的参与度和忠诚度。
3. 增加电玩城的收入和盈利能力。
三、活动时间和地点:1. 活动时间:计划在周末或节假日举办,为期一周。
2. 活动地点:电玩城内的赛车游戏专区。
四、活动内容:1. 主题设置:将电玩城赛车活动定为一个大型竞速赛事,让顾客能够亲身参与其中,感受速度与激情的魅力。
2. 比赛项目:设置多个赛车游戏站点,每个站点设有多台游戏机。
参赛顾客可在规定时间内进行游戏,以达到最快完成比赛项目的目标。
3. 分组设置:根据参赛顾客的不同水平和经验,将他们分为初级组、中级组和高级组。
每个组别设立奖项,以鼓励顾客参与。
4. 赛程安排:(1) 比赛预选赛:每个组别的前100名将晋级到决赛。
(2) 决赛:将所有组别的选手进行混合,通过单场或多场比赛选出冠军和亚军。
5. 奖品设置:为增加活动的吸引力和参与度,设立奖品,包括金牌、奖杯、奖金、电玩城会员卡充值金额等。
6. 游戏规则:参赛顾客需购买电玩城会员卡,并对赛车游戏进行积分充值。
通过游戏机上的排行榜,确定比赛的名次和晋级名单。
五、活动推广:1. 合作推广:与赛车游戏开发商进行合作,共同推广活动。
2. 媒体宣传:通过电视、广播、报纸、杂志等媒体渠道进行宣传推广。
3. 社交媒体:利用微博、微信、抖音等社交媒体平台宣传活动,并举办相应的线上抽奖活动,吸引更多的参与者。
4. 门店宣传:通过电玩城内海报、展板、彩带等物料宣传活动信息。
5. 会员推广:鼓励电玩城会员邀请亲友前来参与活动,设立奖励机制。
六、活动运营:1. 人员安排:活动期间设立专门的工作人员负责活动的组织、协调和管理。
幼儿园大班数学小游戏对于幼儿园大班的小朋友来说,数学学习既重要又充满挑战。
通过有趣的小游戏,可以让他们在轻松愉快的氛围中,不知不觉地掌握数学知识,培养数学思维。
以下是一些适合幼儿园大班的数学小游戏。
一、数字拼图准备一些数字卡片和相应的拼图卡片。
将数字写在拼图卡片的一部分,另一部分是与数字相关的图案。
例如,数字“5”对应的拼图部分可能是五朵小花的图案。
小朋友们需要将数字和图案正确匹配,拼成完整的卡片。
这个游戏可以帮助小朋友们认识数字,并理解数字与数量的对应关系。
二、数字跳房子在地上画出类似跳房子的格子,每个格子里写上不同的数字。
小朋友们通过扔沙包或者小石子,按照数字顺序依次跳进格子。
比如,从 1 开始,跳到 2,再跳到 3,依此类推。
这个游戏可以锻炼小朋友们对数字顺序的认知和身体协调能力。
三、购物游戏设置一个“小超市”,准备一些常见的商品玩具和价格标签。
小朋友们扮演顾客和收银员。
顾客选择自己想要购买的商品,收银员计算总价。
在这个过程中,小朋友们可以学习物品的价格、货币的使用以及简单的加法运算。
四、数字接龙老师先说出一个数字,然后小朋友们依次说出后面的数字。
例如,老师说“3”,第一个小朋友说“4”,第二个小朋友说“5”,以此类推。
如果有小朋友说错了,就重新开始。
这个游戏可以强化小朋友们对数字顺序的记忆。
五、分类游戏准备一些不同形状、颜色、大小的物品,如各种颜色和形状的积木。
让小朋友们按照一定的标准进行分类,比如按照颜色分类,或者按照形状分类。
分类完成后,让他们数一数每种分类有多少个物品,从而引入数量的概念。
六、猜数字老师在心里想一个 1 到 10 之间的数字,小朋友们通过提问来猜出这个数字。
比如,小朋友可以问“是大于 5 的数字吗?”老师回答“是”或“不是”,直到小朋友猜出正确的数字。
这个游戏可以培养小朋友们的逻辑推理能力和对数字范围的理解。
七、搭积木比高矮给小朋友们提供一些相同大小的积木,让他们自由搭建。
用Unity创建一个刺激的赛车游戏Unity是一款强大的游戏开发引擎,它提供了丰富的工具和功能,使得开发人员能够轻松创建各种类型的游戏。
在本文中,我将介绍如何使用Unity来创建一个刺激的赛车游戏。
1. 游戏场景设计游戏的第一步是设计一个引人入胜的游戏场景。
你可以选择一个城市街道、田野或者山脉等作为背景,或者根据自己的喜好设计一个虚构的场景。
使用Unity的场景编辑器,你可以轻松地创建和布置不同的道路和环境元素,使场景变得更加丰富多样。
2. 赛车模型和材质接下来,需要创建一个赛车模型并为其添加材质。
Unity提供了多种建模工具,你可以使用它们来创建一个具有细节丰富的赛车模型。
在设计赛车外观时,你可以参考现实世界的汽车或者自己的想象来进行创作。
为了使赛车看起来更逼真,你可以为其添加光照和阴影效果。
3. 赛道设计制作赛道是赛车游戏的重要一环。
你可以使用Unity的道路工具来绘制赛道路径,并根据需要自定义赛道的形状和曲线。
你可以为赛道设置不同的地形和障碍物,如山石、建筑物或者其他赛车无法穿越的障碍物。
4. 赛车控制实现赛车的控制是游戏开发中的一个关键步骤。
你可以使用Unity 的物理引擎来为赛车添加真实的物理效果,如重力、摩擦力和碰撞。
通过编写脚本来控制赛车的移动、转向和加速,你可以使赛车在游戏中具有更真实的表现。
5. 对手AI如果你希望游戏更具挑战性,可以为赛车游戏添加对手AI。
你可以使用Unity的AI工具来创建对手赛车,并编写脚本来控制它们的行为。
对手可以自动驾驶,在赛道上与玩家进行竞争,增加游戏的刺激性。
6. 游戏界面和音效一个好的游戏界面可以增加游戏的可玩性和吸引力。
你可以使用Unity的UI工具来创建游戏的界面元素,如开始菜单、计分板等。
同时,添加适当的音效也能为游戏增添乐趣,比如引擎声音、碰撞声效等。
7. 测试和优化在开发过程中,经常进行测试和优化是非常重要的。
通过测试,你可以找到游戏中存在的问题,并对其进行修复。
洛克人x8攻略CAPCOM的《洛克人》系列一直是家用游戏机上的经典,笔者从任天堂红白机上就开始领略到其不容拒绝的魅力。
多年来以《洛克人》为题材的游戏一直在各种家用机平台上反复出现了数十次之多,其间也往PC Game领域移植过几次,基本没有造成太大的反响。
前作《洛克人X7》是一个失败的3D化版本,而这次的《洛克人X8》则吸取了前作完全改版以至于特色尽失的教训,又回到了以2D横版为主的老路上来。
游戏以简单的横版过关形式为主,夹杂了诸如赛车等诸多游戏模式,设计了丰富的升级系统和让人眼花缭乱的动作元素,让游戏自始至终给玩家以极大的刺激和强烈的挑战,其设计巧妙的各种隐藏元素更是让游戏者反复把玩,欲罢不能。
基本操控X(或双击→键):冲刺Z:跳跃S:特殊武器A:一般攻击D或C:转换武器F:转换角色V:双重攻击←↑→↓:方向控制空格键:联络领航员Alt+F4:退出游戏角色简介艾克斯:以字母X表示,洛克人系列永远的主角,各种能力较均衡。
射击方向仅能左右两向,不可做到斜向,可蓄力射击,有强化装甲。
杰洛:以字母Z表示,手持光剑的猎人,近身攻击力强大,拥有2段跳绝技,进化后有多种威力惊人的必杀技。
艾克赛尔:以字母A表示。
射击威力一般,但可以45度角斜向射击,而且可连发。
他的特点是跳跃后滞空时间长,还有别人没有的复制功夫。
艾莉雅:领航员,熟悉每个关卡的场景情况,掌握了各关Boss的一手资料。
第一次以简单模式玩游戏时建议多多选择艾莉雅。
柏拉图:领航员,擅长分析航线数据,可提醒玩家隐藏路线。
通关一次后,第二次以探寻隐藏要素为主要目的的话,选择柏拉图将不会错过任何可疑之处。
雷亚:领航员,具备分析敌人弱点的能力,可以回复主角部分生命值。
在游戏最后阶段,选择雷亚的回复能力是很有必要的。
特别提示:如果在游戏中开发出特别的领航员晶片,那么在选择角色时就可选择领航员代替猎人进行游戏(按Tab键切换),艾莉雅、柏拉图和雷亚分别对应艾克斯、艾克赛尔和杰洛。
幼儿园公开课:大班数学游戏《新型车展》教案(详案)教案概述:本节课是一堂幼儿园大班数学游戏公开课,主题为《新型车展》。
通过游戏的方式,引导幼儿认识不同类型的车辆,并培养他们的观察力、分类能力和数学思维。
教学目标:1. 认识不同类型的车辆,如汽车、火车、飞机等。
2. 培养幼儿的观察力和分类能力。
3. 引导幼儿进行简单的数学思维,如数量比较和数数。
教学准备:1. 图片或玩具车辆模型,包括汽车、火车、飞机等。
2. 大班教室的空地或地板。
教学步骤:1. 导入环节:- 引导幼儿回忆他们在生活中见过的不同类型的车辆,如汽车、火车、飞机等。
- 展示一些车辆的图片或玩具模型,让幼儿观察并说出它们的名称。
2. 游戏规则说明:- 解释游戏规则:幼儿将分成几个小组,每个小组代表一个车展的展台。
- 每个小组将获得一些车辆的图片或玩具模型,他们需要根据车辆的类型将它们分类并展示在自己的展台上。
3. 游戏进行:- 让每个小组在自己的展台上展示他们的车辆。
- 引导幼儿观察其他小组的展台,看看他们是如何分类车辆的。
- 鼓励幼儿互相交流,分享自己的观察和分类方法。
4. 数量比较:- 引导幼儿观察每个小组展台上的车辆数量,比较哪个小组的车辆最多,哪个小组的车辆最少。
- 让幼儿用手指指向最多和最少的小组,并说出原因。
5. 数数游戏:- 让每个小组选出一种车辆,如汽车,然后数一数他们展台上有多少辆汽车。
- 引导幼儿说出数目,并比较不同小组的数目。
6. 游戏- 回顾整个游戏过程,让幼儿分享他们的观察和学到的知识。
- 引导幼儿总结不同类型的车辆,并复习数数和数量比较的概念。
教学延伸:1. 可以引导幼儿制作自己喜欢的车辆模型,加强他们对车辆的认识和兴趣。
2. 可以在游戏中加入更多的数学元素,如车辆的颜色、形状等,让幼儿进行更多的观察和分类。
3. 可以组织幼儿参观附近的车展或交通博物馆,进一步拓展他们对车辆的认识。
数学游戏-趣味几何介绍数学游戏是一种结合娱乐和学习的方式,可以帮助人们更轻松地理解和应用数学知识。
而趣味几何作为数学游戏的一种形式,在解决几何问题的同时,还能增加人们对几何概念的理解和兴趣。
本文将介绍一些有趣的数学游戏,帮助您在玩乐中提升几何能力。
游戏1:拼图游戏拼图游戏是一种常见的数学游戏,在这个过程中,玩家需要根据给定的图形碎片来还原出完整的图案。
对于拼图游戏来说,几何概念是非常重要的。
玩家需要观察每个碎片的形状、边长、角度等特征,并通过比较和试错来将碎片正确地组合在一起。
游戏2:迷宫探险迷宫探险是一种以解决迷宫问题为基础的数学游戏。
在这个游戏中,玩家需要从起点走到终点,避开障碍物和死胡同。
玩家需要运用几何知识来判断行进的方向和距离,同时还需要灵活应对迷宫中的复杂结构和规则。
游戏3:三角形拼图三角形拼图是一种有趣而挑战性的数学游戏。
每个拼图由散落的三角形碎片组成,玩家需要将这些碎片重新排列,使它们通过共享边长或相等的角度来完整地连接在一起。
这个游戏可以帮助玩家加深对三角形特性(如内角和、边长关系等)的理解。
游戏4:射击几何图形射击几何图形是一种结合游戏和几何学习的互动体验。
在这个游戏中,玩家扮演一个射手,需要用弓箭来命中不同形状的目标,比如圆形、正方形、矩形等。
通过调整射击角度和力度,玩家能够更好地理解和应用几何知识,并提高空间感知力。
结论数学游戏-趣味几何为我们提供了一种有趣而有效的学习方式。
通过参与各种几何相关的数学游戏,我们可以增加对几何概念的理解和应用能力,同时培养数学思维和推理能力。
无论是在学校还是在生活中,通过参与这些游戏,我们可以更加轻松地掌握几何知识,并提升自己的数学水平。
tome4任务攻略本文目录:1、tome4 攻略盾战士怎么加属性2、有没有什么很冷门,但是质量很高的单机游戏呢?3、tome4的游戏简介4、tome4的游戏攻略boss左键点死就是有点慢而且应该解锁什么技能... 比方物免怪你拿把附加元素属性伤害高的武器和盾去... 参考下我的圣骑攻略吧,和盾战玩法差不多的 .有没有什么很冷门,但是质量很高的单机游戏呢?嗯?冷门游戏,质量高,虽然不明确是游戏操作体验高还是要求高画质,不过归类到冷门游戏的话,确实有那么几款游戏可以推荐一下,而且部分操作上具有一定难度,游戏乐趣多多,是值得去体验一下的。
《旋转轮胎:泥泞奔驰》虽然游戏中的名称可能会让玩家产生一种错觉,认为这是一款竞速类游戏,不过恰恰相反,这部是一部“龟速”类游戏了!哈哈~不过比起传统的赛车游戏,也许这款游戏确实要比赛车类游戏要难上几倍了,在操作上。
先来说下这部游戏的玩法,其中有各种各样的载具让玩家驾驶,可以是第一人称视觉,也能够是第三人称视觉,部分硬核玩家为了达成成就,那么就必须是第一人称视觉内完成啦!然而游戏的重点才刚刚开始。
也许在玩家刚接触这款游戏就已经“知错”了,虽然这些车子的样款看起来非常普通,但是它们却能完成一般车没能够完成的任务,也就是在泥泞上行驶,不要以为这只是简单的观看卡车践踏这股泥泞,那你就大错特错了!玩家所行驶的路径,都会随着车辆陷入泥泞的深度而导致车辆是否能够越过这片难以驾驶的地方,更可以说成是被泥泞所侵蚀。
在第一人称视觉中,也许自己驾龄不算高,原以为还能够继续走,谁知道切换成第三人称视觉的时候,则发现车子几乎要泡汤了,特别在于那些拖着长长货物的卡车更是难以驾驶,前进难,倒退难,走泥路更是难上加难!卡车陷入淤泥依然还有救的,那就依靠旁边的树木,利用绳索不断把卡车拉近,让卡车重新进入可行驶区域,另外汽车的档位完全要玩家手动设置,经常在一条路上卡死也是家常便饭了,这一切都要看玩家的操作技术如何啦!《猎人:野性的呼唤》哈哈~在自己体验过这款游戏的时候就已经开始发现,自己的角色没有走几步路,CPU风扇便开始高速转动起来了。
游戏数字赛车教案反思大班教案标题:游戏数字赛车教案反思(大班)教案目标:1. 学生能够认识和理解数字概念。
2. 学生能够通过游戏活动提高数数和计数的能力。
3. 学生能够发展社交技能,如合作和分享。
教学准备:1. 数字赛车游戏工具包(数字卡片、赛车模型等)。
2. 游戏规则和指导手册。
3. 大班教室空间的布置和准备。
教学过程:1. 导入(10分钟):- 创造一个愉快的氛围,打招呼,询问学生们的状态。
- 引入游戏的主题,通过提问激发学生对数字的思考,如“你们最喜欢的数字是什么?”、“数字在我们生活中有哪些用途?”2. 游戏介绍和规则讲解(15分钟):- 向学生们介绍数字赛车游戏的目的和规则。
- 解释每个数字卡片代表的数字,并展示相关的图像示例。
- 指导学生们如何使用数字卡片进行游戏。
3. 游戏活动(30分钟):- 学生们分成小组,每个小组有一辆赛车模型和一组数字卡片。
- 学生们轮流选择一个数字卡片,并根据卡片上的数字将赛车向前移动相应的步数。
- 学生们轮流进行游戏,直到一辆赛车到达终点。
4. 活动总结(10分钟):- 让学生们回顾游戏的过程,分享他们最喜欢的数字和最喜欢的部分。
- 引导学生们思考游戏中遇到的数字概念和计数技能。
- 提醒学生们数字在日常生活中的应用,并鼓励他们继续探索数字的乐趣。
教案反思:这堂游戏数字赛车教案在大班中取得了不错的效果。
通过游戏活动,学生们不仅加强了数字概念的认知,还发展了数数和计数的能力。
另外,游戏的合作性质也促进了学生们的社交技能的发展。
其中,教学准备充分,并且游戏规则的讲解清晰明了。
这有助于学生们迅速理解和参与游戏。
同时,游戏的分组设计也非常合理,每个小组有赛车模型和数字卡片,确保每位学生都能积极参与。
然而,教学过程中可能需要更加重视对学生个体差异的关注。
有些学生掌握数字概念和计数技能比较困难,可能需要额外的辅助指导和练习。
此外,游戏活动的时间安排也需要根据学生的反应进行调整,确保每个学生都有足够的时间参与游戏。
点阵赛车游戏实验报告姓名班级学号一、要求和任务1.用8×8点阵进行5秒倒计时显示,如下图所示。
2.当5秒倒计时结束后,点阵显示下图所示的赛道和赛车的初始位置,赛车游戏开始,并开示赛车行进的方向。
要求:用BTN1~BTN3三个按键分别控制赛车的左移、前进、右移,最终使赛车在不碰撞赛道的情况下走完全程(即图2中的绿色位置),游戏结束,点阵显示“V”图案,数码管显示走完全程所耗费的时间。
当游戏时间超过59秒,或者赛车在行进过程中碰撞赛道,游戏失败,点阵显示“X”图案。
通过按键BTN0进行复位,控制点阵返回到初始状态。
提高要求:有多种游戏赛道可选,5秒倒计时显示后赛道随机出现。
赛车的初始位置随机出现。
在赛车行进过程中,赛道中随机出现障碍物(用8×8点阵中的一个LED表示),通过BTN1~BTN3三个按键的控制躲避障碍物,走完全程。
若赛车碰到障碍物和赛道,则游戏失败。
二、系统设计(包括设计思路、总体框图、分块设计)总体框图:三、仿真波形及波形分析Button0按下,点阵显示5 1秒后,点阵显示42后,点阵显示33秒后,显示2 4秒后,显示15秒后,数码管显示5 9两个向左按键,赛车碰壁,显示失败‘x’又复位之后,又54321减下来又开始重复。
四、源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY saiche ISPORT(CLOCK:IN STD_LOGIC;button0,button1,button2,button3:IN STD_LOGIC; --四个按键:复位键、右、上、左ROW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --控制车道的横向量COL_RED:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--控制车道的红色列向量COL_GREEN:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--控制车道的绿色列向量LIGHT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); --段选输出LIGHT_EN:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)--位选输出);END saiche;ARCHITECTURE MLD OF saiche ISSIGNAL CLK1hz,CLK_5K,CLK_1K,CLK_2K,CLK_100hz,CLK_200hz:STD_LOGIC;--1hz,5khz,1Khz,2Khz,100hz,200hz时钟信号SIGNAL N:INTEGER RANGE 0 TO 6; --产生随机赛道时的判断数SIGNAL NUM:INTEGER RANGE 0 TO 20; --0号赛道逐点扫描时点的序列SIGNAL NUM1:INTEGER RANGE 0 TO 19; --1号赛道逐点扫描时点的序列SIGNAL NUM2:INTEGER RANGE 0 TO 18; --2号赛道逐点扫描时点的序列SIGNAL NUM3:INTEGER RANGE 0 TO 22; --3号赛道逐点扫描时点的序列SIGNAL T_HIGH:INTEGER RANGE 0 TO 5; --倒计时高位SIGNAL T_LOW:INTEGER RANGE 0 TO 9; --倒计时低位SIGNAL COUNT200:INTEGER RANGE 0 TO 250000; --各分频用的计数SIGNAL COUNT2:INTEGER RANGE 0 TO 50000;SIGNAL COUNT3:INTEGER RANGE 0 TO 50000;SIGNAL COUNT:INTEGER RANGE 0 TO 50000000;SIGNAL COUNT1:INTEGER RANGE 0 TO 10000;SIGNAL COUNT_100hz:INTEGER RANGE 0 TO 500000;SIGNAL tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,tmp8:std_logic;--消抖时用的临时信号SIGNAL CNT,CNT1:INTEGER RANGE 0 TO 1000;SIGNAL FAIL,SUCCESS,TIME_UP:STD_LOGIC;--FAILS赛车碰到车道的失败信号,SUCCESS赛车到终点的成功信号--TIME_UP 60s时间到的失败信号SIGNAL START :INTEGER RANGE 0 TO 6; --START=1 54321计时到的开启信号SIGNAL TIMES :INTEGER RANGE 0 TO 7; --点阵显示状态判别信号SIGNAL SEL:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL RST,DIRECTION_LEFT,DIRECTION_RIGHT,DIRECTION_UP: STD_LOGIC;-- 由四个按键经过消抖处理后,产生的四个控制信号TYPE DIAN IS ARRAY(INTEGER RANGE <>) OF INTEGER RANGE 0 TO 7;SIGNAL SX,SY ,SX1,SY1:INTEGER RANGE 0 TO 7;--SX,SY赛车坐标,SX1,SY1障碍坐标CONSTANT WY:DIAN(0 TO 18):=(0,0,0,1,2,3,3,3,4,4,4,5,6,7,7,7,4,5,6);--0号赛道红绿色车道纵坐标,后三个是绿色车道纵坐标CONSTANT WX:DIAN(0 TO 18):=(0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7,7,7);--0号赛道红绿色车道的横坐标,后三个是绿色车道横坐标CONSTANT WY1:DIAN(0 TO 17):=(1,0,1,0,1,2,1,2,4,5,6,7,7,6,5,5,3,4);--1号赛道红绿色车道纵坐标,后两个是绿色车道纵坐标CONSTANT WX1:DIAN(0 TO 17):=(0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7,7);--1号赛道红绿色车道的横坐标,后两个是绿色车道横坐标CONSTANT WY2:DIAN(0 TO 16):=(1,2,1,1,2,3,4,5,4,5,6,6,5,6,7,7,6);--2号赛道红绿色车道纵坐标,后一个是绿色车道纵坐标CONSTANT WX2:DIAN(0 TO 16):=(0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7);--2号赛道红绿色车道的横坐标,后一个是绿色车道横坐标CONSTANT WY3:DIAN(0 TO 20):=(1,1,1,1,0,0,0,0,6,6,6,6,6,6,6,6,1,2,3,4,5); --3号赛道红绿色车道的横坐标,后五个是绿色车道横坐标CONSTANT WX3:DIAN(0 TO 20):=(0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7,7,7,7,7); --0号赛道红绿色车道的横坐标,后五个是绿色车道横坐标SIGNAL STATE:INTEGER RANGE 0 TO 1;TYPE FIGURE IS ARRAY(INTEGER RANGE <>) OF INTEGER RANGE 0 TO 9;SIGNAL SHOW:FIGURE(9 DOWNTO 0); --数码显示BEGINp1:PROCESS(CLOCK) --分频部分BEGINIF CLOCK'EVENT AND CLOCK='1' THENCOUNT<=COUNT+1;COUNT1<=COUNT1+1;COUNT_100hz<=COUNT_100hz+1;COUNT200<=COUNT200+1;COUNT2<=COUNT2+1;COUNT3<=COUNT3+1;IF COUNT<=24999999 THEN --1HZ分频CLK1hz<='1';ELSIF COUNT>24999999 AND COUNT<=49999999 THENCLK1hz<='0';ELSIF COUNT=50000000 THENCOUNT<=0;END IF;IF COUNT2<=9998 THENCLK_1K<='1';ELSIF COUNT2>9998 AND COUNT2<=19997 THENCLK_1K<='0';ELSIF COUNT2=19998 THENCOUNT2<=0;END IF;IF COUNT3<=24999 THEN --1KHZ分频CLK_2K<='1';ELSIF COUNT3>24999 AND COUNT3<=49999 THENCLK_2K<='0';ELSIF COUNT3=50000 THENCOUNT3<=0;END IF;IF COUNT1<=4999 THEN --5KHZ分频CLK_5K<='1';ELSIF COUNT1>4999 AND COUNT1<=9999 THENCLK_5K<='0';ELSIF COUNT1=10000 THENCOUNT1<=0;END IF;IF COUNT_100hz<=249999 THEN --100HZ分频CLK_100hz<='1';ELSIF COUNT_100hz>249999 AND COUNT_100hz<=499999 THENCLK_100hz<='0';ELSIF COUNT_100hz=500000 THENCOUNT_100hz<=0;END IF;IF COUNT200<=124999 THEN --200HZ分频CLK_200hz<='1';ELSIF COUNT200>124999 AND COUNT200<=249999 THENCLK_200hz<='0';ELSIF COUNT200=250000 THENCOUNT200<=0;END IF;END IF;END PROCESS;P2:PROCESS(CLK_100hz,button0,button1,button2,button3,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7, tmp8) --消抖部分BEGINIF(CLK_100hz'event AND CLK_100hz='0')THENtmp2<=tmp1;tmp1<=button0;tmp4<=tmp3;tmp3<=button1;tmp6<=tmp5;tmp5<=button2;tmp8<=tmp7;tmp7<=button3;END IF;RST <= CLK_100hz AND tmp1 AND (NOT tmp2);DIRECTION_RIGHT <=CLK_100hz AND tmp3 AND (NOT tmp4);DIRECTION_UP <=CLK_100hz AND tmp5 AND (NOT tmp6);DIRECTION_LEFT <=CLK_100hz AND tmp7 AND (NOT tmp8); END PROCESS;p0:PROCESS(CLK_1K) --产生随机数BEGINIF CLK_1K'EVENT AND CLK_1K='1' THENif TIMES=0 THEN N<=N;ELSEIF N=6 THENN<=0;ELSE N<=N+1;END IF;END IF;END IF;END PROCESS;p3: PROCESS(CLK_2K)BEGINIF CLK_2K'event AND CLK_2K='1' THENIF NUM=20 THENNUM<=0;ELSE NUM<=NUM+1;END IF;IF NUM1=19 THENNUM1<=0;ELSE NUM1<=NUM1+1;END IF;IF NUM2=18 THENNUM2<=0;ELSE NUM2<=NUM2+1;END IF;IF NUM3=22 THENNUM3<=0;ELSE NUM3<=NUM3+1;END IF;END IF ;END PROCESS;p4:PROCESS(CLK_5K)BEGINif CLK_5K'EVENT AND CLK_5K='1' thenIF SEL="111" THENSEL<="000";ELSE SEL<=SEL+'1';END IF;END IF;END PROCESS;p5: PROCESS(CLK1hz,START,T_HIGH,T_LOW,SUCCESS,FAIL)--数码管显示判断部分BEGINIF START=5 THEN --54321游戏开始,START为瞬时值T_HIGH<=5;T_LOW<=9; TIME_UP<='0'; CNT1<=0;ELSIF CLK1hz'EVENT AND CLK1hz='1' THENIF SUCCESS='1'THEN --成功的话则显示成功所用时间if CNT1=0 thenT_LOW<=9-T_LOW;T_HIGH<=5-T_HIGH ;CNT1<=CNT1+1;ELSE T_LOW<=T_LOW;T_HIGH<=T_HIGH ;T_LOW<=T_LOW;END IF;ELSIF FAIL='1' THEN -- 失败则显示失败时刻值T_LOW<=T_LOW;T_HIGH<=T_HIGH ;ELSIF SUCCESS='0' AND FAIL='0' THEN -- 正常则倒计时If T_LOW=0 AND T_HIGH=0 THENTIME_UP<='1'; --时间到60S返回TIME_UP信号ELSIF T_LOW=0 AND T_HIGH/=0 THENT_LOW<=9;T_HIGH<=T_HIGH-1;ELSET_LOW<=T_LOW-1;END IF;END IF;END IF;END PROCESS;P6:PROCESS(CLK_5K,T_HIGH,T_LOW,START) -- 数码管显示部分BEGINIF START/=5 AND START/=6 THENLIGHT<="0000000";ELSIF CLK_5K'EVENT AND CLK_5K='1' THENIF(STATE=1)THENSTATE<=0;ELSE STATE<=STATE+1;END IF;CASE STATE IS --数码管分次扫描WHEN 1=>LIGHT_EN<="110111";WHEN 0=>LIGHT_EN<="111011";WHEN OTHERS=>LIGHT_EN<="111111";END CASE;SHOW(0)<=T_LOW;SHOW(1)<=T_HIGH;CASE SHOW(STATE) IS --数码管数字显示设置WHEN 9=>LIGHT<="1111011";WHEN 8=>LIGHT<="1111111";WHEN 7=>LIGHT<="1110000";WHEN 6=>LIGHT<="1011111";WHEN 5=>LIGHT<="1011011";WHEN 4=>LIGHT<="0110011";WHEN 3=>LIGHT<="1111001";WHEN 2=>LIGHT<="1101101";WHEN 1=>LIGHT<="0110000";WHEN 0=>LIGHT<="1111110";WHEN OTHERS=>LIGHT<="0000000";END CASE;END IF;END PROCESS;p7:PROCESS(RST,CLK_200hz,START,DIRECTION_LEFT,DIRECTION_RIGHT,DIRECTION_UP,SX,SY ) --控制赛车部分BEGINIF RST='1' THEN SX<=0;SY<=2;ELSIF CLK_200hz'event AND CLK_200hz='1' THEN--DIRECTION_LEFT,DIRECTION_RIGHT,DIRECTION_UP脉宽5ms--所以用CLK_200hz时钟检测,避免过多检测到信号或没有检测到方向信号SX1<=2;SY1<=3;IF TIMES=0 THENIF DIRECTION_LEFT='1' then --赛车向左移一格SY<=SY-1;ELSIF (DIRECTION_RIGHT='1') then --赛车向右移一格SY<=SY+1;ELSIF (DIRECTION_UP='1') then --赛车向上移一格SX<=SX+1;END IF;END IF;end if;END PROCESS;p8: PROCESS (SX,SY,TIMES,CLK_5K,N) --成功失败判断部分BEGINIF TIMES=0 THENIF CLK_5K'event AND CLK_5K='1' THENCASE N ISWHEN 0=> --0号赛道判断部分IF((SY=0 and SX=0)or(SY=0 and SX=1)or(SY=0 and SX=2)or(SY=1 and SX=3)or(SY=3 and SX=3)or(SY=2 and SX=4)or(SY=3 and SX=5)or(SY=3 and SX=6)or(SY=3 and SX=7)or(SY=4 and SX=0)or(SY=4 and SX=1)or(SY=4 and SX=2)or(SY=6 and SX=4)or(SY=7 and SX=5)or(SY=7 and SX=6)or(SY=7 and SX=7)) thenFAIL<='1';ELSIF (SY=4 and SX=7)or (SY=5 and SX=7)or (SY=6 and SX=7) then SUCCESS<='1';ELSE SUCCESS<='0';FAIL<='0';END IF;WHEN 1|4=> --1号赛道判断部分IF((SY=1 and SX=0)or(SY=0 and SX=1)or(SY=1 and SX=2)or(SY=0 and SX=3)or(SY=1 and SX=4)or(SY=2 and SX=5)or(SY=1 and SX=6)or(SY=3 and SX=3)or(SY=2 and SX=7)or(SY=4 and SX=0)or(SY=5 and SX=1)or(SY=6 and SX=2)or(SY=7 and SX=3)or(SY=7 and SX=4)or(SY=6 and SX=5)or(SY=5 and SX=6)or(SY=5 and SX=7)) thenFAIL<='1';ELSIF (SY=3 and SX=7)or (SY=4 and SX=7) thenSUCCESS<='1';ELSE SUCCESS<='0';FAIL<='0';END IF;WHEN 2|5=> --2号赛道判断部分IF((SY=1 and SX=0)or(SY=2 and SX=1)or(SY=1 and SX=2)or(SY=1 and SX=3)or(SY=2 and SX=4)or(SY=4 and SX=6)or(SY=3 and SX=3)or(SY=5 and SX=7)or(SY=4 and SX=0)or(SY=5 and SX=1)or(SY=6 and SX=2)or(SY=6 and SX=3)or(SY=5 and SX=4)or(SY=6 and SX=5)or(SY=7 and SX=6)or(SY=7 and SX=7)) thenFAIL<='1';ELSIF (SY=6 and SX=7) thenSUCCESS<='1';ELSE SUCCESS<='0';FAIL<='0';END IF;WHEN 3|6=> --3号赛道判断部分IF((SY=1 and SX=0)or(SY=1 and SX=1)or(SY=1 and SX=2)or(SY=1 and SX=3)or(SY=0 and SX=4)or(SY=0 and SX=5)or(SY=0 and SX=6)or(SY=0 and SX=7)or(SY=6 and SX=0)or(SY=6 and SX=1)or(SY=6 and SX=2)or(SY=6 and SX=3)or(SY=3 and SX=3)or(SY=6 and SX=4)or(SY=6 and SX=5)or(SY=6 and SX=6)or(SY=6 and SX=7)) thenFAIL<='1';ELSIF (SY=4 and SX=7)or (SY=5 and SX=7)or (SY=1 and SX=7)or (SY=2 and SX=7)or(SY=3 and SX=7)thenSUCCESS<='1';ELSE SUCCESS<='0';FAIL<='0';END IF;WHEN OTHERS => SUCCESS<='0';FAIL<='0';END CASE;END IF ;END IF;end process;PROCESS(SEL,RST,SUCCESS,FAIL,N,NUM,NUM1,NUM2,NUM3,SX,SY,SX1,SY1,CLK1hz,START,TIMES,T IME_UP)BEGINIF RST='1' THENTIMES<=5;START<=0;ELSIF START=6 THENIF SUCCESS='1' THEN TIMES<=7;ELSIF TIME_UP='1' OR FAIL='1' THEN TIMES<=6;END IF;ELSIF CLK1hz'EVENT AND CLK1hz='1' thenIF TIMES=0 THEN TIMES<=0;ELSETIMES<=TIMES-1;END IF;if START=6 thenSTART<=6;else START<=START+1;end if;END IF;case TIMES isWHEN 7=> case SEL is --显示成功字符“V”When "000"=>ROW<="01111111";COL_RED<="00000000";COL_GREEN<="00000000";When "001"=>ROW<="10111111";COL_RED<="01000100";COL_GREEN<="00000000";When "010"=>ROW<="11011111";COL_RED<="01000100";COL_GREEN<="00000000";When "011"=>ROW<="11101111";COL_RED<="01000100";COL_GREEN<="00000000";When "100"=>ROW<="11110111";COL_RED<="00101000";COL_GREEN<="00000000";When "101"=>ROW<="11111011";COL_RED<="00010000";COL_GREEN<="00000000";When "110"=>ROW<="11111101";COL_RED<="00000000";COL_GREEN<="00000000";When "111"=>ROW<="11111110";COL_RED<="00000000";COL_GREEN<="00000000";When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";End case;WHEN 6=> case SEL is --显示失败字符“X”When "000"=>ROW<="01111111";COL_RED<="10000001";COL_GREEN<="00000000";When "001"=>ROW<="10111111";COL_RED<="01000010";COL_GREEN<="00000000";When "010"=>ROW<="11011111";COL_RED<="00100100";COL_GREEN<="00000000";When "011"=>ROW<="11101111";COL_RED<="00011000";COL_GREEN<="00000000";When "100"=>ROW<="11110111";COL_RED<="00011000";COL_GREEN<="00000000";When "101"=>ROW<="11111011";COL_RED<="00100100";COL_GREEN<="00000000";When "110"=>ROW<="11111101";COL_RED<="01000010";COL_GREEN<="00000000";When "111"=>ROW<="11111110";COL_RED<="10000001";COL_GREEN<="00000000";When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";End case;WHEN 5=> CASE SEL IS --显示字符“5”When "000"=>ROW<="01111111";COL_RED<="00111100";COL_GREEN<="00000000";When "001"=>ROW<="10111111";COL_RED<="00000100";COL_GREEN<="00000000";When "010"=>ROW<="11011111";COL_RED<="00000100";COL_GREEN<="00000000";When "011"=>ROW<="11101111";COL_RED<="00111100";COL_GREEN<="00000000";When "100"=>ROW<="11110111";COL_RED<="00100000";COL_GREEN<="00000000";When "101"=>ROW<="11111011";COL_RED<="00100000";COL_GREEN<="00000000";When "110"=>ROW<="11111101";COL_RED<="00100000";COL_GREEN<="00000000";When "111"=>ROW<="11111110";COL_RED<="00111100";COL_GREEN<="00000000";When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";END CASE;WHEN 4=> CASE SEL IS --4When "000"=>ROW<="01111111";COL_RED<="00100100";COL_GREEN<="00000000";When "001"=>ROW<="10111111";COL_RED<="00100100";COL_GREEN<="00000000";When "010"=>ROW<="11011111";COL_RED<="00100100";COL_GREEN<="00000000";When "011"=>ROW<="11101111";COL_RED<="00111100";COL_GREEN<="00000000";When "100"=>ROW<="11110111";COL_RED<="00100000";COL_GREEN<="00000000";When "101"=>ROW<="11111011";COL_RED<="00100000";COL_GREEN<="00000000";When "110"=>ROW<="11111101";COL_RED<="00100000";COL_GREEN<="00000000";When "111"=>ROW<="11111110";COL_RED<="00000000";COL_GREEN<="00000000";When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";END CASE;WHEN 3=> CASE SEL IS --3When "000"=>ROW<="01111111";COL_RED<="00111100";COL_GREEN<="00000000";When "001"=>ROW<="10111111";COL_RED<="00100000";COL_GREEN<="00000000";When "010"=>ROW<="11011111";COL_RED<="00100000";COL_GREEN<="00000000";When "011"=>ROW<="11101111";COL_RED<="00111100";COL_GREEN<="00000000";When "100"=>ROW<="11110111";COL_RED<="00100000";COL_GREEN<="00000000";When "101"=>ROW<="11111011";COL_RED<="00100000";COL_GREEN<="00000000";When "110"=>ROW<="11111101";COL_RED<="00111100";COL_GREEN<="00000000";When "111"=>ROW<="11111110";COL_RED<="00000000";COL_GREEN<="00000000";When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";END CASE;WHEN 2=> CASE SEL IS --2When "000"=>ROW<="01111111";COL_RED<="00111100";COL_GREEN<="00000000";When "001"=>ROW<="10111111";COL_RED<="00100000";COL_GREEN<="00000000";When "010"=>ROW<="11011111";COL_RED<="00100000";COL_GREEN<="00000000";When "011"=>ROW<="11101111";COL_RED<="00111100";COL_GREEN<="00000000";When "100"=>ROW<="11110111";COL_RED<="00000100";COL_GREEN<="00000000";When "101"=>ROW<="11111011";COL_RED<="00000100";COL_GREEN<="00000000";When "110"=>ROW<="11111101";COL_RED<="00111100";COL_GREEN<="00000000";When "111"=>ROW<="11111110";COL_RED<="00000000";COL_GREEN<="00000000";When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";END CASE;WHEN 1=> case SEL is --显示字符“1”When "000"=>-ROW<="01111111";COL_RED<="00001000";COL_GREEN<="00000000";When "001"=>ROW<="10111111";COL_RED<="00001000";COL_GREEN<="00000000";When "010"=>ROW<="11011111";COL_RED<="00001000";COL_GREEN<="00000000";When "011"=>ROW<="11101111";COL_RED<="00001000";COL_GREEN<="00000000";When "100"=>ROW<="11110111";COL_RED<="00001000";COL_GREEN<="00000000";When "101"=>ROW<="11111011";COL_RED<="00001000";COL_GREEN<="00000000";When "110"=>ROW<="11111101";COL_RED<="00001000";COL_GREEN<="00000000";When "111"=>ROW<="11111110";COL_RED<="00000000";COL_GREEN<="00000000";When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";End case;WHEN 0=> --扫描赛车和赛道COL_RED<="00000000"; COL_GREEN<="00000000";ROW<="11111111";CASE N ISWHEN 0 =>CASE NUM ISWHEN 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15=> --扫描0号红色赛道--COL_RED(WY(NUM-1))<='0';ROW(WX(NUM-1))<='1';COL_RED(WY(NUM))<='1';ROW(WX(NUM))<='0';WHEN 16|17|18=> --扫描0号绿色赛道COL_GREEN(WY(NUM))<='1';ROW(WX(NUM))<='0';WHEN 19=> --扫描赛车坐标COL_RED(SY)<='1';COL_GREEN(SY)<='1';ROW(SX)<='0';WHEN 20=> -扫描障碍坐标COL_RED(SY1)<='1';ROW(SX1)<='0';WHEN OTHERS=>COL_RED<="00000000";COL_GREEN<="00000000";ROW<="11111111";END CASE;WHEN 1|4=>CASE NUM1 ISWHEN 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15=> --扫描1号红色赛道COL_RED(WY1(NUM1))<='1';ROW(WX1(NUM1))<='0';WHEN 16|17=> --1号绿色赛道COL_GREEN(WY1(NUM1))<='1';ROW(WX1(NUM1))<='0';WHEN 18=> --扫描赛车坐标COL_RED(SY)<='1';COL_GREEN(SY)<='1';ROW(SX)<='0';WHEN 19=> --扫描赛车坐标COL_RED(SY1)<='1';ROW(SX1)<='0';WHEN OTHERS=>COL_RED<="00000000";COL_GREEN<="00000000";ROW<="11111111";END CASE;WHEN 2|5=>CASE NUM2 IS--WHEN 0=>WHEN 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15=>--COL_RED(WY(NUM-1))<='0';ROW(WX(NUM-1))<='1';COL_RED(WY2(NUM2))<='1';ROW(WX2(NUM2))<='0';WHEN 16=>COL_GREEN(WY2(NUM2))<='1';ROW(WX2(NUM2))<='0';WHEN 17=>COL_RED(SY)<='1';COL_GREEN(SY)<='1';ROW(SX)<='0';WHEN 18=>COL_RED(SY1)<='1';ROW(SX1)<='0';WHEN OTHERS=>COL_RED<="00000000";COL_GREEN<="00000000";ROW<="11111111";END CASE;WHEN 3|6 =>CASE NUM3 ISWHEN 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15=>COL_RED(WY3(NUM3))<='1';ROW(WX3(NUM3))<='0';WHEN 16|17|18|19|20=>COL_GREEN(WY3(NUM3))<='1';ROW(WX3(NUM3))<='0'; -WHEN 21=>COL_RED(SY)<='1';COL_GREEN(SY)<='1';ROW(SX)<='0';WHEN 22=>COL_RED(SY1)<='1';ROW(SX1)<='0';WHEN OTHERS=>COL_RED<="00000000";COL_GREEN<="00000000";ROW<="11111111";END CASE;When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";END CASE;When others =>ROW<="11111111";COL_RED<="00000000";COL_GREEN<="00000000";END CASE;END PROCESS;END MLD;五、功能说明用BTN1~BTN3三个按键分别控制赛车的左移、前进、右移,最终使赛车在不碰撞赛道的情况下走完全程(即图2中的绿色位置),游戏结束,点阵显示“V”图案,数码管显示走完全程所耗费的时间。