搜索
bottom↓
回复: 71

用MCU做的俄罗斯方块(通过串口在超级终端上显示)裸机...

  [复制链接]

出0入0汤圆

发表于 2012-11-28 22:39:39 | 显示全部楼层 |阅读模式
本帖最后由 Robin_King 于 2012-11-28 22:45 编辑


先不说废话,上图



**************************************游戏简介******************************************************

这是在MCU上实现的经典游戏之俄罗斯方块。通过移动、旋转和摆放游戏自动输出的各种
方块,使之排列成完整的一行或多行并且消除得分。

游戏在超级终端上显示,游戏在界面的左边显示主操作窗口,在界面的右边显示下一个出
现的方块和游戏得分及游戏等级。

通过PC键盘控制游戏,向上键旋转,左右键实现左右移动,向下键实现向下移动,空格
键实现快速移动(一次性移动到位)。

游戏开始时,提供开始游戏、选择游戏难度等级、退出游戏选项。

当新产生的方块没地方放置时,游戏结束。结束时显示“GAME OVER”信息并提供再来
一次和退出游戏选项。

每产生一个方块时,游戏积分加10分,一次性消除一层时,积分加100分,消除两层时,
积分加200分,消除三层时,积分加400分,消除四层时,积分加800分。

当总积分达到8000分时,游戏等级升一级,下降速度增加。同时积分清零。当完成最
高等级(第7级)时,回到第1级。

**************************************游戏平台介绍************************************************

这是在我手头的一款AVR32UC3A的评估板上实现的,之所以发在STM32版块上,一
是因为:设计只针对某一MCU而不能移植的程序意义不大。二是STM用的用户比较多
呀。三是我打算在有空时也要把这程序移植到STM32平台上。

相类似的移植过程在我的另一个帖子中也有提到:

http://www.amobbs.com/thread-5506746-1-1.html

串口参数:57600 , 8 ,NONE , 1。

我下面提供的源代码是我在ATMEL studio 6 下的完整项目包
硬件平台:EVK1100


**************************************源代码**********************************************************




代码中还有一些我没发现的BUG,欢迎各位感兴趣的朋友斧正!

**************************************未完待续********************************************************

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-11-28 22:43:24 | 显示全部楼层
顶下,MARK

出0入0汤圆

发表于 2012-11-28 23:57:05 来自手机 | 显示全部楼层
超级终端是不是支持某种显示格式协议,不只是字符输入输功能吧

出0入0汤圆

发表于 2012-11-29 03:02:48 来自手机 | 显示全部楼层
weixinal 发表于 2012-11-28 23:57
超级终端是不是支持某种显示格式协议,不只是字符输入输功能吧

名字都告诉你叫超级终端了,当然支持的是终端显示的协议了。。。。

出0入0汤圆

发表于 2012-11-29 03:10:00 | 显示全部楼层
jisaowang 发表于 2012-11-29 03:02
名字都告诉你叫超级终端了,当然支持的是终端显示的协议了。。。。

顶了,不错~~~

出0入0汤圆

发表于 2012-11-29 08:08:11 | 显示全部楼层
cool,很不错,我还以为超级终端就仅仅是一个串口显示程序呢。这种显示终端的协议哪里有介绍?

出0入0汤圆

发表于 2012-11-29 08:13:39 | 显示全部楼层
不错的想法

出0入0汤圆

发表于 2012-11-29 08:16:51 | 显示全部楼层
不错不错。。支持楼主多些学习资料分享

出0入0汤圆

发表于 2012-11-29 08:19:46 | 显示全部楼层
MARK               

出100入0汤圆

发表于 2012-11-29 09:12:38 来自手机 | 显示全部楼层
原来超级终端可以这么完的,有空也学习下~MARK

出0入0汤圆

发表于 2012-11-29 09:16:17 | 显示全部楼层
MARK ,等超级终端图形显示介绍!

出0入0汤圆

发表于 2012-11-29 09:23:57 | 显示全部楼层
有点牛B哦

出0入0汤圆

发表于 2012-11-29 09:30:58 来自手机 | 显示全部楼层
jisaowang 发表于 2012-11-29 03:02
名字都告诉你叫超级终端了,当然支持的是终端显示的协议了。。。。

终端显示协议,一下子我明白了原来还真的有这么个东西,之前一直在纳闷终端连接Linux主机时的显示是怎么实现的,现在明白了

出0入0汤圆

 楼主| 发表于 2012-11-29 09:34:44 | 显示全部楼层
wormchen 发表于 2012-11-29 09:16
MARK ,等超级终端图形显示介绍!

超级终端是只能显示字符,但是字符的前景色和背景色是可以设置的,也可以通过将光标定位到屏幕上在任意位置。这下你明白我这个图形是怎么设计的了吧,呵呵(空格加背景色)。

出0入0汤圆

 楼主| 发表于 2012-11-29 09:46:11 | 显示全部楼层
hexenzhou 发表于 2012-11-29 08:08
cool,很不错,我还以为超级终端就仅仅是一个串口显示程序呢。这种显示终端的协议哪里有介绍? ...

请参见14楼的回复和源代码中application文件夹下terminal模块,里面有这些指令(可能就是你所说的协议)的实现方法。我抽时间也会把这些完整地整理一下再发布的。

出0入0汤圆

发表于 2012-11-29 10:51:45 | 显示全部楼层
好强大的说

出0入0汤圆

 楼主| 发表于 2012-11-29 18:31:30 | 显示全部楼层

*****************************现在发布一下移植到STM32平台上的源代码******************************



硬件环境:STM32F103
开发环境:IAR6.4

对于有朋友感兴趣的终端显示控制协议,在请参看源代码中terminal中的内
容,我会抽时间整理一下那个协议,整理好后,我会及时发布的。

欢迎各位批评斧正!

*****************************【未完待续】*******************************************************************

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-11-29 19:23:35 | 显示全部楼层


**************************刚又把游戏移植到了AT MEGA 32上,公布源代码*******************************

为了验证一下我代码的可移植性怎样,刚我又把它移植到了 ATMEGA 32 上,做了一小点改动:
1.因为用的开发环境是AVR studio 4 (编译器是GCC),在顶层 app_cfg中,__MCU_AVR_32__对应的条件编译内容加入了
#define FLASH   PROGMEM
其他两个条件编译内容中加入
#define FLASH   const
2.把game_module.c中的所有const关键字换成了FLASH
3.把TeterisGame.c中 creat_module()函数中使用的memcpy全换成了memcpy_P;

以上改动是解决了sram不够有问题。

但代码兼容帖子上面的两个平台。

下面是MEGA32的源代码:



注意,这个代码中我把波特率改为了9600,发现也能玩,想要好显示效果的,把波特率改高点,serial模块的配置文件里改

*************************************【未完待续】*********************************************************

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-11-29 20:16:04 | 显示全部楼层
创意无限,好

出0入0汤圆

发表于 2012-11-29 20:17:52 | 显示全部楼层

出0入0汤圆

发表于 2012-11-29 20:18:08 | 显示全部楼层

出0入0汤圆

发表于 2012-11-29 20:28:21 | 显示全部楼层
非常强大!!!

出0入296汤圆

发表于 2012-11-29 22:00:14 | 显示全部楼层
给徒儿顶起~

出0入0汤圆

发表于 2012-11-29 22:17:25 | 显示全部楼层
markaaaaaaa

出0入0汤圆

 楼主| 发表于 2012-11-29 22:18:03 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-29 22:00
给徒儿顶起~

谢谢王老师!致敬!

出0入0汤圆

发表于 2012-11-30 09:59:37 来自手机 | 显示全部楼层
用串口做的,不错!

出0入17汤圆

发表于 2012-11-30 11:35:28 | 显示全部楼层
楼主这个动画图片是怎么弄出来的呀?

出0入0汤圆

发表于 2012-11-30 11:39:59 | 显示全部楼层
无他,唯顶尔                                                                             

出0入0汤圆

发表于 2012-11-30 11:41:29 | 显示全部楼层
ssh协议??

出0入0汤圆

发表于 2012-11-30 11:42:25 | 显示全部楼层
想法很好,顶一个!

出0入0汤圆

发表于 2012-11-30 12:17:21 | 显示全部楼层
挺NB的东西。

出0入0汤圆

 楼主| 发表于 2012-11-30 17:06:32 | 显示全部楼层
llysc 发表于 2012-11-30 11:35
楼主这个动画图片是怎么弄出来的呀?

这种图片的格式是GIF,可以用QQ影音将视频转化得来,也可以用其他更为专业的软件做,思路是
先做出你的视频或图片,之后再把这些图片或视频弄成GIF,呵呵,这个我一点都不专业,你可以
百度了解。

我这个用的是主要用于屏幕录像的一个软件camtasia studio做的,把图像录好后,可以自定义生
成GIF图片,网上教程也很多。

出0入0汤圆

 楼主| 发表于 2012-11-30 17:17:23 | 显示全部楼层
korgo 发表于 2012-11-30 11:41
ssh协议??

想远了,不是同一种类型。前几楼要看的是超级终端的控制协议,我感觉这个更像是一些指令吧,跟SSH是两回事。

出0入0汤圆

 楼主| 发表于 2012-12-14 21:08:44 | 显示全部楼层
****************重要更新:双人游戏***************************************

老规则,不说太多没用的话,先上图


本次更新的内容包括:

1.优化了工程架构
2.加入了双人游戏。

对于双人游戏的操作说明:
player1:
向上键:顺时针旋转方块
向下键:向下移动一格
向左键:向左移动一格
向下键:向右移动一格
空格键:一次性到位

player2:

w:顺时针旋转方块
s: 向下移动一格
a: 向左移动一格
d: 向右移动一格
x: 一次性到位
注:要为小写字母,如果玩不了,看下是不是开了大写,当然,大家也可以在程序中加上大写字母的识别(用||)

********************************STM32平台下的源代码*********************

STM32平台下的源代码:

****************************************末完待续*********************************



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-12-21 15:25:27 | 显示全部楼层
必须得顶!!

出0入0汤圆

发表于 2012-12-21 15:54:03 | 显示全部楼层
这个好!
有创意,有技术!

出0入0汤圆

发表于 2012-12-21 16:26:36 | 显示全部楼层
赞一个!

出0入0汤圆

发表于 2012-12-21 17:53:37 | 显示全部楼层
深入学习

出0入0汤圆

发表于 2012-12-21 20:48:29 | 显示全部楼层
我要好好研究研究作者的大作

出0入0汤圆

发表于 2012-12-22 09:31:16 | 显示全部楼层
我靠!太牛X了,看来要努力学习呀!!!!

出0入0汤圆

发表于 2012-12-22 10:18:18 | 显示全部楼层
确实很好,值得参照@!

出0入0汤圆

发表于 2012-12-22 16:10:17 | 显示全部楼层
论坛转多了,见的牛人也说越来越了!

出0入0汤圆

发表于 2012-12-22 16:18:24 | 显示全部楼层
我一直以为超级终端只能传输文字,这个图块怎么做的?超级终端这么强?

出0入0汤圆

发表于 2012-12-22 16:23:33 | 显示全部楼层
超级终端竟然还可以这么玩。

出0入0汤圆

发表于 2012-12-22 16:56:27 | 显示全部楼层
比较有新意

出0入296汤圆

发表于 2012-12-26 16:46:14 | 显示全部楼层
定期顶一顶~

出0入0汤圆

发表于 2013-6-9 16:29:15 | 显示全部楼层
未完待续。。。待续到什么时候。

出0入0汤圆

发表于 2013-6-9 23:08:14 | 显示全部楼层
楼主做游戏开发的吧?

出0入0汤圆

发表于 2013-6-10 15:02:32 | 显示全部楼层
这个很NB,超级终端还有这用途,真是受教了

出0入0汤圆

发表于 2013-6-10 15:33:52 | 显示全部楼层
good ideal!

出0入0汤圆

发表于 2013-8-11 17:44:50 | 显示全部楼层
串口参数:57600 , 8 ,NONE , 1。
这里的NONE是什么?

出0入0汤圆

发表于 2013-8-12 07:21:56 来自手机 | 显示全部楼层
mark……
顶一个…

出0入0汤圆

 楼主| 发表于 2013-8-13 12:57:15 | 显示全部楼层
wsygb 发表于 2013-8-11 17:44
串口参数:57600 , 8 ,NONE , 1。
这里的NONE是什么?

波特率:57600,数据位:8,无校验、停止位是1。NONE就表示无奇偶校验。

出0入0汤圆

发表于 2013-8-13 13:18:28 | 显示全部楼层
you点意思。

出0入0汤圆

发表于 2013-8-13 13:38:26 | 显示全部楼层
很新颖。mark一个

出0入0汤圆

发表于 2013-8-13 13:56:14 | 显示全部楼层
膜拜, 小弟半路出家学习嵌入式,日复一日,几无进益,请问大哥学习的时候都看什么书,对于程序架构方面的心得从何而来,能够指点一二,不胜感激~

出0入0汤圆

发表于 2013-8-13 20:56:48 来自手机 | 显示全部楼层
mark……
顶一个…

出0入0汤圆

发表于 2013-8-13 21:27:33 | 显示全部楼层
还可以这样玩,太佩服LZ了

出0入0汤圆

发表于 2013-8-13 21:35:21 | 显示全部楼层
楼主NB啊,原来超级终端也能这样玩啊

出0入0汤圆

发表于 2013-8-16 23:43:54 | 显示全部楼层
楼主能介绍超级终端的协议吗

出0入0汤圆

发表于 2013-8-18 09:57:54 | 显示全部楼层
   用MCU做的俄罗斯方块(通过串口在超级终端上显示)裸机...    顶

出0入0汤圆

发表于 2013-8-25 15:04:11 | 显示全部楼层
有没有 超级终端 显示 的协议文档?

出0入0汤圆

发表于 2013-8-25 20:37:24 | 显示全部楼层
很好很强大

出0入0汤圆

发表于 2013-8-25 20:55:20 | 显示全部楼层
MARK!~~~~~~~~~~~~~

出0入0汤圆

发表于 2013-8-26 09:43:59 | 显示全部楼层
很不错。。。

出0入0汤圆

发表于 2013-8-26 11:04:10 | 显示全部楼层
楼主比较厉害啊,佩服~

出0入0汤圆

发表于 2013-8-26 11:38:50 | 显示全部楼层
牛啊 厉害爆了啊

出0入0汤圆

 楼主| 发表于 2014-1-4 23:07:31 | 显示全部楼层
weixinal 发表于 2012-11-28 23:57
超级终端是不是支持某种显示格式协议,不只是字符输入输功能吧

协议来了:
发布windows超级终端(HtperTermianl)的设置帮助及参考代码
http://www.amobbs.com/thread-5565516-1-1.html
(出处: amoBBS 阿莫电子论坛)

出0入0汤圆

发表于 2014-10-9 13:56:40 | 显示全部楼层
好东西 超级终端玩到一定境界啦

出0入0汤圆

发表于 2014-10-9 13:59:35 | 显示全部楼层
支持 支持 !!!

出0入0汤圆

发表于 2014-10-9 14:09:47 | 显示全部楼层
不错 mark 以后学习

出0入0汤圆

发表于 2014-10-9 15:48:12 来自手机 | 显示全部楼层
这个好玩哎
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 04:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表