俄罗斯方块中的编程思想

2018-07-20 05:49:54来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

做了俄罗斯方块的小练习,总结一下其中用到的编程思想

一.面向对象的思想
1.封装
抓住格子、方块、墙几个事物
方块由四个格子组成
墙由10*20的格子组成(定义为二维数组)
墙中的格子开始是空的,方块落下去,又堆叠起来,墙上才有格子(给对应数组元素的赋值),符合生活中人们对事物的认识

2.继承
把方块的通用属性和方法抽象为方块的共同父类,不同类型的方块都继承这个类

 

类图如下所示:

 

二.化繁为简的思想
1.把复杂的功能拆分一个一个的小功能:比如把action主流程细分为在游戏结束、游戏暂停、游戏进行中,
每一种又继续细分对不同的按键做什么反应

2.把整体的动作拆分为每一个部分的动作:
比如,方块的移动拆分为组成方块的每个格子的移动

3.先实现基础的功能,再逐步完善

 

三.补偿的思想
在对方块的移动过程中,营造一种方块碰到墙壁不能越界的效果
采用了补偿的思想
以向左移为例。先试着向左移,如果会造成越界或者重合,那就再向右移一次
利用了计算机快速地运算速度,肉眼看起来就像方块碰到了墙壁或障碍物就无法移动了一样


四.数学分析的思想
在对方块做不同形式的转换的过程中,归纳每种方块有几种变化状态,及从一种状态到下一种状态的时候每个格子的坐标的变化规律
再把状态变化封装成数组,在父类中只是定义状态数组,没有指定数组的长度,在子类中根据子类的变化个数,再确定数组的长度


五.简单工厂的思想
方块的父类有一个静态方法,用来随机创建不同的子类对象

 

下图为游戏效果图:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java基础-数组和面向对象

下一篇:浅谈String,StringBuffer以及StringBuilder