10岁小伙自学C++制作俄罗斯方块游戏,厉害到让你怀疑人生!

俄罗斯方块经典版是一款由俄罗斯人休闲游戏。它于阿列克谢·帕基特诺夫于1984年6月发明的,游戏规则简单,但想玩高分确实很有挑战,也许在现在看来,这款游戏算不得什么,但在当时俄罗斯方块真的是世界闻名!这款经典版也继承了经典的内涵!

先说思路,游戏主要有这么几个功能:

游戏主界面是10*20的格子,每轮随机创建一个形状的方块,总共有6种形状,方块每秒下降1格,遇到障碍无法下降时进入下一轮。方块可以旋转、移动、加速下落,格子界面有一行放满时可消除。游戏的主体是格子界面和6种不同形状方块的交互。编程就是用逻辑处理数据,要先有数据才能处理,因此我们先用数据把格子界面和方块描述出来。

格子界面很简单,是一个10 * 20的整型二维数组,空格子用0表示,否则用1表示。

#define BG_WIDTH 10

#define BG_HEIGHT 20

int backGround[BG_HEIGHT][BG_WIDTH] = { 0 };

每个方块的数据也是一个二维数组,根据方块的形状可知,用4*4的数组即可放下所有形状的所有方向数据。同样空格用0表示,否则用1表示。例如:

主要内容:

  程序中有一个board数组,其中有要显示的部分,也有不显示的部分,不显示的部分都存储1。

  如下图:

  shape采用4*4数组(shape)保存。如:

0 0 0 0

0 1 0 0 

1 1 1 0

0 0 0 0

  另外用变量row和column保存shape数组左上角在board中的位置。

  每次下落或左右移动,先对row和column做出改变,然后检测当前row和column下,shape是否重合了为1的格子,如果有重合,就说明shape出界了或者到达下落最低点,则要恢复row和column值。另外,如果是下落,还要将shape放在board上,并产生新的shape。

  旋转时,先对shape数组进行旋转操作,然后检测重合,如果有重合,则反向旋转回来。

声明:本文内容来源于网络,如有侵权请联系删除

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值