问题

在Tetris游戏中,游戏场地由10列×20行个正方形格子构成,如图所示,每个方块由四个格子组成,绘制在场地中,如图所示中的红色方块。

4个小型正方形格子组成的规则图形(Tetromino),共有7种,分别以S、Z、L、J、I、O、T这7个字母的形状来命名,各个图形形状如下图所示。

之前案例中定义的Cell类,表示游戏场地中的一个正方形格子,存储其在场地中的位置。本案例中会使用到Cell类,拷贝之前案例中的该类使用即可。本案例要求定义表示T型方块的类T和J型方块的类J。T型方块和J型方块的形状如上图所示中的黄色方块和紫色方块。

方案

要实现本案例要求的功能,解决方法如下:

1.定义名为T的类,由于每个方块有四个格子,因此,在T类中添加属性cells,cells属性的类型为Cell数组类型,即,Cell[]。这样,cells数组中就可以存储四个格子来表示一个方块。

2. 为T类添加构造方法。可以提供无参数构造方法,及按顺时针方向、方块中第一个格子的行和列作为参数的构造方法。

3.为了方便查看方块中四个

Java入门第53课——俄罗斯方块项目中的T类和J类相关推荐

  1. Java入门第116课——向List中插入和删除元素

    问题 向List集合的指定索引位置插入元素以及移除指定索引位置的元素,详细要求如下: 1)创建List接口的引用list,使该引用指向ArrayList的实例,将字符串"java" ...

  2. Java入门第121课——使用Comparator接口实现排序

    问题 使用Comparator接口实现对集合中的元素排序,详细要求如下: 1)使用ArrayList构建集合对象cells,该集合中要求存储Cell类型的数据. 2)分别构造行和列为(2,3).(5, ...

  3. Java入门第107课——使用add方法向集合中添加元素

    问题 使用add方法向集合中添加元素,详细要求如下: 1)使用ArrayList构造集合对象c,并输出该对象. 2)将字符串"a"."b"."c&qu ...

  4. Java入门第112课——使用Iterator的hasNext方法、next方法遍历集合

    问题 使用Iterator的hasNext方法.next方法遍历集合,详细要求如下: 1)使用HashSet构建集合c,将字符串"java"."cpp".&qu ...

  5. Java入门第111课——集合addAll、containsAll的用法

    问题 测试Collection接口中addAll方法.containsAll方法的用法,详细要求如下: 1)使用ArrayList构建集合c1,将字符串"java"."c ...

  6. Java入门第37课——猜字母游戏之设计数据结构

    问题         有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏 ...

  7. Java入门第38课——猜字母游戏之设计程序结构

    问题 本案例需要实现猜字母游戏程序中的程序结构 方案 分析猜字母游戏可以看出,程序首先需要随机产生5个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能:其次,每当玩家猜测一次后,程 ...

  8. Java入门第118课——List转换为数组

    问题 将集合List转换为数组,详细要求如下所示: 1)创建List接口的引用list,使该引用指向ArrayList的实例:将字符串"a"."b"." ...

  9. Java入门第82课——StringBuilder的append方法

    问题 StringBuilder类提供将各种数据类型变量的字符串形式追加到当前序列中的append方法,在Java API中提供的append重载方法如图-15所示: 本案例要求将字符串"j ...

最新文章

  1. SpringBoot使用Redis和MyBatis完成缓存数据的增删改查
  2. 【数据库系统】编程语言类型说明系统和DDL的区别
  3. Java中String.split和StringUtils.split性能比较
  4. 如何使用python装饰器_Python学习之如何使用装饰器 @decorator
  5. 操作系统(4)存储器管理
  6. 开课吧-Java常见面试题:重载和重写的区别?
  7. Ubuntu 16.04上安装Code::Blocks
  8. win10家庭版 mysql_win10家庭版64位下mysql 8.0.15 安装配置方法图文教程
  9. java dtls server_基于tinyDTLS 构建的lwm2m Server
  10. Ubuntu14.04 用 CrossOver 安装 TMQQ2013
  11. Codeforces Round #365 (Div. 2) C. Chris and Road(思维题-零点定理)
  12. android button 图片与文字一起
  13. 大陆、香港、澳门、台湾身份证最全正则校验
  14. 论坛项目小程序和h5登录
  15. 百度定位 Android 经纬度出现4.9E-324 问题解决
  16. Android数据存储之文件存储
  17. 【简单易上手】昇思MindSpore邀你定制专属Diffusion模型
  18. Python PymySQl 下载安装配置
  19. 信号系统一些基本概念
  20. 算法001-C++从0到1实现链表v1

热门文章

  1. 势能线段树(吉司机线段树)专题
  2. 全新UI视频打赏系统全开源版本+附教程/实测可用
  3. SAP开发框架系列之 自动单据
  4. Git 关于多人协作模式
  5. 麻省理工学院——人工智能公开课04
  6. 常用交联剂-丙烯酰胺AM交联剂/N,N-亚甲基丙烯酰胺MBA交联剂/环氧氯丙烷/ECH交联剂
  7. BZOJ2246 [SDOI2011]迷宫探险 【记忆化搜索dp + 概率】
  8. .NET Framework EF的添加,欢迎阅读!
  9. 前端js进阶之ES6 Promise(承诺)用法小结笔记、详细解释(resolve,catch,catch)历史最通俗易懂的承诺
  10. 糖豆人android,进击的糖豆人