JS实现俄罗斯方块
在80后、90后的儿时记忆里,俄罗斯方块是必备的消遣小游戏,它的玩法非常简单基本大家都懂,但如何用编程语言开发一款儿时同款「俄罗斯方块」,恐怕知道的同学就很少啦。 位置掩码和旋转掩码 俄罗斯方块游戏中的格子一般是10列20行(10*20),我们称之为世界地图。 一般都是这种竖屏的界面 10*20的空间是用来盛放方块的,当方块落定之后位置便不能再改变。这个时候它会被保存到地图的状态中,我们给地图状态设计一个二维的数组。 方块有7种样式组成,最大的长宽是4个方格,为了在逻辑上比较好的处理所有类型的方块,我们构建了一个4x4的逻辑区域,用来统一描述所有类型的方块,包括显示、旋转等。这一区域就成为了它自身的空间整体,而方块被放到世界地图中时,也是以这样的整体加入进去的。 我们给方块定义了四种属性,分别是方向、颜色、种类以及在世界地图中的坐标。 方块可以做旋转,每经过四次旋转便会回到原始的状态,分别用0123来表示方块的四个方向,新产生的方块设定的是默认方向。 下图中的数值代表它在自己的空间内,哪些格子是有方块的,哪些是没有的。这是一个二进制的16位的显示掩码,0x4444代表的就是第一行第三列,第二行的第三列,第三行的第三列和第四行的第三列。 如果你没有做过数码管的显示,我用数字的角度来说明下:每个图是四行,分别用四个数字表示,数字使用十六进制;每行的四个方块从右到左表示1、2、4、8