吐血巨献stm32 DIY俄罗斯方块 断断续续写了四天中间还有一天补牙 调了一下午
本帖最后由 张静茹 于 2014-8-20 21:02 编辑

点击此处查看视频

贪吃蛇的帖子https://www.kechuang.org/t/66641

225015


先上程序


+1  学术分    1211   2014-09-14   赞扬
+500  科创币    科创论坛   2014-08-20   编译和运行环境。
+50  科创币    yanli12321   2014-08-20   超高节操发帖
+1  科创币    布布卡   2014-08-21   感谢分享
+1  科创币    wangrui555   2014-08-21   身为计算机专业的我,自叹不如啊~
来自 软件综合
2014-8-20 20:17:11
1楼
哈哈,看的捉急啊,,玩的不错加油~[s:12][s:12]
折叠评论
加载评论中,请稍候...
折叠评论
2楼
仰望高端玩家玩STM32,还是彩色TFT屏。
另外那个BGM是什么?一直好想要
折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
3楼
点点_ 发表于 2014-8-20 20:45
仰望高端玩家玩STM32,还是彩色TFT屏。
另外那个BGM是什么?一直好想要


River Flows In You  百度
折叠评论
加载评论中,请稍候...
折叠评论
4楼
被stm32的i2c玩死的默默点赞
折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
5楼
本帖最后由 张静茹 于 2014-8-21 12:51 编辑

三四天的时间 思路改了好几次,刚开始 写了一个10*10方块的函数,打算每个形状的 方框都写一个函数,然后检测屏幕哪一行满了就计分 ,后来发现不太好检测,原子自带的那个 检测屏幕颜色的函数也不大好用,而且左移右移之后怎样能不淹没已经固定的方块,最后改成了现在的程序 定义一个32个元素 的int数组,屏幕分辨率320*240,每个元素代表一行。每位对应一个10*10方块,在写一个专门刷屏的函数,只要计算好这个数组表就能实现 左移右移 计分的功能,
void left_shift(void); //左移函数
void right_shift(void); //右移函数
char down_shift(void); //下移
方块形状存到box_date[19][4]

box_xy[0]=0;box_xy[1]=10;   //复位xy标记
Calculation_Fraction(); //计分
KEY.n=rand()%0x13; //形成随即形状
box_date_temp[0]=box_date[KEY.n][0]; //放进临时缓存数组
box_date_temp[1]=box_date[KEY.n][1];
box_date_temp[2]=box_date[KEY.n][2];
box_date_temp[3]=box_date[KEY.n][3];
然后由down_shift函数 对准将 方块缓存box_date_temp[0]对准屏幕缓存box[],拷贝进准确的位置,由fresh_screen();更新到屏幕

然后再次用down_shift下降方块,并且判断 是否已经落到屏幕底部,或者 通过方块缓存box_date_temp与屏幕缓存box[]与运算,结果大于0说明落到落到别的方块上面了,

unsigned int box[32]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
const unsigned int box_date[19][4]={
0x2000, 0x2000, 0x2000, 0x2000, //垂直四块 0
0x0000, 0x0000, 0x0000, 0x7800, //水平四块 1
0x0000, 0x0000, 0x6000, 0x3000, //正Z水平 2
0x0000, 0x2000, 0x6000, 0x4000, //正Z垂直 3
0x0000, 0x0000, 0x3000, 0x6000, //反Z水平 4
0x0000, 0x4000, 0x6000, 0x2000, //反Z垂直 5
0x0000, 0x6000, 0x2000, 0x2000, //正7 +0 6
0x0000, 0x0000, 0x1000, 0x7000, //正7 +90 7
0x0000, 0x4000, 0x4000, 0x6000, //正7 +180 8
0x0000, 0x0000, 0x7000, 0x4000, //正7 +270 9
0x0000, 0x6000, 0x4000, 0x4000, //反7 +0 10 a
0x0000, 0x0000, 0x7000, 0x1000, //反7 +90 11 b
0x0000, 0x2000, 0x2000, 0x6000, //反7 +180 12 c
0x0000, 0x0000, 0x4000, 0x7000, //反7 +270 13 d
0x0000, 0x0000, 0x2000, 0x7000, //上土 14 e
0x0000, 0x0000, 0x7000, 0x2000, //下土 15 f
0x0000, 0x4000, 0x6000, 0x4000, //右土 16 10
0x0000, 0x2000, 0x6000, 0x2000, //左土 17 11
0x0000, 0x0000, 0x6000, 0x6000 //田 18 12
};

void box_delete(void); //删除当前方块
void box_change(void); //更改方块形状
//void box_xy(void); //取方框 在box数组中的位置
//char box_judge(void); //判断方块 落到底,碰到 别的方块
void refresh_screen(void);//刷屏函数
unsigned int Calculation_Fraction(void);//计算分数
void Row_Down(signed char); //整排下降

@科创论坛, 编译环境是keil5.1225030

折叠评论
加载评论中,请稍候...
折叠评论
2014-8-21 08:55:54
6楼
不得不说很不错,赞一个
折叠评论
加载评论中,请稍候...
折叠评论
2014-8-25 09:54:30
2014-8-25 09:54:30
7楼
很不错,stm32玩的很好啊
折叠评论
加载评论中,请稍候...
折叠评论
8楼
有魅力的女人[s:12]     正在学DSP的飘过
折叠评论
加载评论中,请稍候...
折叠评论
2014-9-11 19:54:17
2014-9-11 19:54:17
9楼
求好友
折叠评论
加载评论中,请稍候...
折叠评论
10楼
求好友
折叠评论
加载评论中,请稍候...
折叠评论
11楼
代码写的真工整,大赞一下。
折叠评论
加载评论中,请稍候...
折叠评论
2014-9-12 09:23:14
张静茹(作者)
12楼
myname_360 发表于 2014-9-11 21:33
代码写的真工整,大赞一下。


格式强迫症, 格式错了感觉会报错似的,传上来的格式就乱了
折叠评论
加载评论中,请稍候...
折叠评论
2014-9-19 11:01:43
2014-9-19 11:01:43
13楼
ST竟然为它的I2C写了1000多行的库……
折叠评论
加载评论中,请稍候...
折叠评论
2014-9-26 13:47:35
2014-9-26 13:47:35
14楼
毅力十足
折叠评论
加载评论中,请稍候...
折叠评论
2015-1-5 12:36:07
2015-1-5 12:36:07
15楼
为何现在看不见程序包了。。
折叠评论
加载评论中,请稍候...
折叠评论
16楼
跪求美女楼主看到了能把程序包发我。急用!!邮箱736651942@qq.com。好人一生平安,谢谢!!
折叠评论
加载评论中,请稍候...
折叠评论
2015-1-11 16:38:12
2015-1-11 16:38:12
17楼
[s::lol]赞
折叠评论
加载评论中,请稍候...
折叠评论
18楼
改下程序让掉下来的全是长条呗[s::lol]
折叠评论
加载评论中,请稍候...
折叠评论
2015-2-28 22:33:58
2015-2-28 22:33:58
19楼
[s::lol]女孩子居然会玩这些,太神了,
折叠评论
加载评论中,请稍候...
折叠评论
20楼
我[s::$]可惜,楼主把我Q删除了
折叠评论
加载评论中,请稍候...
折叠评论
21楼
做这个开发板的人好像是我读书的时候比我大一个年级的一个师兄,网名叫正点原子什么的
折叠评论
加载评论中,请稍候...
折叠评论
2015-3-1 02:56:45
22楼
my dream girl 是要会写程序的!求交往
折叠评论
加载评论中,请稍候...
折叠评论
2015-3-14 09:00:42
2015-3-14 09:00:42
23楼
引用 张静茹:
River Flows In You  百度
https://www.kechuang.org/t/70472
这个怎么搞
折叠评论
加载评论中,请稍候...
折叠评论
24楼
这么年轻,牙居然坏了?!!!!!!
折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
25楼
引用 samsun185:
这么年轻,牙居然坏了?!!!!!!
[s:30]
折叠评论
加载评论中,请稍候...
折叠评论
2015-9-11 13:56:08
2015-9-11 13:56:08
26楼
STM32 初学
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png