1.为了节约算法资源消耗,玩家发射的泡泡数量有限,统一为20个炮弹。
2.为了体现不同速度下的难度,弱化鼠标的作用,发送泡泡会左右快速或者慢速移动,然后瞄准后,用户发射泡泡。
3.为了将程序量控制在1万行以内,做如下的简化:如果发送的泡泡和上方的泡泡,2个泡泡颜色相同,那么自动消除这2个泡泡,但是不考虑连锁的反应(即横向,斜向,多个的情况,这个涉及到复杂的搜索机制,本课题只考虑发射的泡泡和上方的泡泡相同的时候才消泡泡),因为这个部分非常复杂。注意,必须是发射的和原来有的泡泡颜色相同才消除,两个发射的或者两个本来就有的放在一起的,不消除。
4.如果20个泡泡发射完成,如果用户消除的泡泡次数小于5,那么会提示游戏失败。此时安健下去重新开始游戏。如果用户消除的泡泡次数大于15,那么提示游戏胜利,安健按下去,则重新开始游戏。
----------------------------------------------------------------------------------------------------------
5.开发板上的PS/2接口接鼠标,USB接口接键盘
6.按下开发板最左边的按键,系统复位,复位后,游戏重新开始,且泡泡颜色排列会新的随机产生;
7.8个数目管的功能:
右边连续四个,为用户游戏积分,中间2个数码管,表示游戏一局已经发送的泡泡数量,0~20显示
然后最左边的2个数码管,第一个,0位慢速模式,1表示快速模式,第二个数码管不使用,没具体功能。
------------------------------------------------------------------------------------------------------------------
8.游戏中,鼠标右击S,表示SLOW,慢速模式,鼠标右击F,表示FAST,快速模式。
------------------------------------------------------------------------------------------------------------------
9.如果泡泡超出游戏界面的红色虚线,那么会失败,屏幕会弹出悲伤的表情
10.每次消除一个泡泡,会有100分得分,如果中得分大于1500分,那么会胜利,屏幕会弹出高兴的表情
11.每次消除一个泡泡,会有100分得分,如果中得分小于500分,那么会失败,屏幕会弹出悲伤的表情
------------------------------------------------------------------------------------------------------------------
12.键盘控制,USB接口,输入键盘。
A,相当于reset功能,游戏重新开始
D,相当于鼠标左键,发射泡泡功能。
------------------------------------------------------------------------------------------------------------------
系统结构如下所示:
其整体RTL结构如下:
硬件测试结果如下: