俄罗斯方块中的编程思想
2018-07-20 05:49:54来源:博客园 阅读 ()
做了俄罗斯方块的小练习,总结一下其中用到的编程思想
一.面向对象的思想
1.封装:
抓住格子、方块、墙几个事物
方块由四个格子组成
墙由10*20的格子组成(定义为二维数组)
墙中的格子开始是空的,方块落下去,又堆叠起来,墙上才有格子(给对应数组元素的赋值),符合生活中人们对事物的认识
2.继承:
把方块的通用属性和方法抽象为方块的共同父类,不同类型的方块都继承这个类
类图如下所示:
二.化繁为简的思想
1.把复杂的功能拆分一个一个的小功能:比如把action主流程细分为在游戏结束、游戏暂停、游戏进行中,
每一种又继续细分对不同的按键做什么反应
2.把整体的动作拆分为每一个部分的动作:
比如,方块的移动拆分为组成方块的每个格子的移动
3.先实现基础的功能,再逐步完善
三.补偿的思想
在对方块的移动过程中,营造一种方块碰到墙壁不能越界的效果
采用了补偿的思想
以向左移为例。先试着向左移,如果会造成越界或者重合,那就再向右移一次
利用了计算机快速地运算速度,肉眼看起来就像方块碰到了墙壁或障碍物就无法移动了一样
四.数学分析的思想
在对方块做不同形式的转换的过程中,归纳每种方块有几种变化状态,及从一种状态到下一种状态的时候每个格子的坐标的变化规律
再把状态变化封装成数组,在父类中只是定义状态数组,没有指定数组的长度,在子类中根据子类的变化个数,再确定数组的长度
五.简单工厂的思想
方块的父类有一个静态方法,用来随机创建不同的子类对象
下图为游戏效果图:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MyBatis中的$和#,用不好,准备走人! 2020-06-11
- 构造函数中的this()和super() 2020-06-10
- 怎么用Java 高效提取、替换、删除PDF文档中的图片 2020-06-09
- Spring12_Spring中的事务控制 2020-06-07
- 深入理解:设计模式中的七大设计原则 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash