zoukankan      html  css  js  c++  java
  • 俄罗斯方块中的编程思想

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

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

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

    类图如下所示:

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

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

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

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


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


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

     

    下图为游戏效果图:

  • 相关阅读:
    18、排序算法-快速排序
    centos7.x 端口映射
    SpringBoot多环境分离resources和lib进行打包
    Java枚举储存的一种索引实现方式
    Maven项目pom文件设置JDK版本
    Java提取URL某个参数的值
    使用正则替换script及其内容
    Oracle设置主键自增
    Maven配置ojdbc14-10.2.0.4.0.jar
    使用maven生成可执行jar包(包含依赖)
  • 原文地址:https://www.cnblogs.com/wsw-tcsygrwfqd/p/9336796.html
Copyright © 2011-2022 走看看