Java入门第53课——俄罗斯方块项目中的T类和J类
问题
在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类相关推荐
- Java入门第116课——向List中插入和删除元素
问题 向List集合的指定索引位置插入元素以及移除指定索引位置的元素,详细要求如下: 1)创建List接口的引用list,使该引用指向ArrayList的实例,将字符串"java" ...
- Java入门第121课——使用Comparator接口实现排序
问题 使用Comparator接口实现对集合中的元素排序,详细要求如下: 1)使用ArrayList构建集合对象cells,该集合中要求存储Cell类型的数据. 2)分别构造行和列为(2,3).(5, ...
- Java入门第107课——使用add方法向集合中添加元素
问题 使用add方法向集合中添加元素,详细要求如下: 1)使用ArrayList构造集合对象c,并输出该对象. 2)将字符串"a"."b"."c&qu ...
- Java入门第112课——使用Iterator的hasNext方法、next方法遍历集合
问题 使用Iterator的hasNext方法.next方法遍历集合,详细要求如下: 1)使用HashSet构建集合c,将字符串"java"."cpp".&qu ...
- Java入门第111课——集合addAll、containsAll的用法
问题 测试Collection接口中addAll方法.containsAll方法的用法,详细要求如下: 1)使用ArrayList构建集合c1,将字符串"java"."c ...
- Java入门第37课——猜字母游戏之设计数据结构
问题 有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏 ...
- Java入门第38课——猜字母游戏之设计程序结构
问题 本案例需要实现猜字母游戏程序中的程序结构 方案 分析猜字母游戏可以看出,程序首先需要随机产生5个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能:其次,每当玩家猜测一次后,程 ...
- Java入门第118课——List转换为数组
问题 将集合List转换为数组,详细要求如下所示: 1)创建List接口的引用list,使该引用指向ArrayList的实例:将字符串"a"."b"." ...
- Java入门第82课——StringBuilder的append方法
问题 StringBuilder类提供将各种数据类型变量的字符串形式追加到当前序列中的append方法,在Java API中提供的append重载方法如图-15所示: 本案例要求将字符串"j ...
最新文章
- SpringBoot使用Redis和MyBatis完成缓存数据的增删改查
- 【数据库系统】编程语言类型说明系统和DDL的区别
- Java中String.split和StringUtils.split性能比较
- 如何使用python装饰器_Python学习之如何使用装饰器 @decorator
- 操作系统(4)存储器管理
- 开课吧-Java常见面试题:重载和重写的区别?
- Ubuntu 16.04上安装Code::Blocks
- win10家庭版 mysql_win10家庭版64位下mysql 8.0.15 安装配置方法图文教程
- java dtls server_基于tinyDTLS 构建的lwm2m Server
- Ubuntu14.04 用 CrossOver 安装 TMQQ2013
- Codeforces Round #365 (Div. 2) C. Chris and Road(思维题-零点定理)
- android button 图片与文字一起
- 大陆、香港、澳门、台湾身份证最全正则校验
- 论坛项目小程序和h5登录
- 百度定位 Android 经纬度出现4.9E-324 问题解决
- Android数据存储之文件存储
- 【简单易上手】昇思MindSpore邀你定制专属Diffusion模型
- Python PymySQl 下载安装配置
- 信号系统一些基本概念
- 算法001-C++从0到1实现链表v1
热门文章
- 势能线段树(吉司机线段树)专题
- 全新UI视频打赏系统全开源版本+附教程/实测可用
- SAP开发框架系列之 自动单据
- Git 关于多人协作模式
- 麻省理工学院——人工智能公开课04
- 常用交联剂-丙烯酰胺AM交联剂/N,N-亚甲基丙烯酰胺MBA交联剂/环氧氯丙烷/ECH交联剂
- BZOJ2246 [SDOI2011]迷宫探险 【记忆化搜索dp + 概率】
- .NET Framework EF的添加,欢迎阅读!
- 前端js进阶之ES6 Promise(承诺)用法小结笔记、详细解释(resolve,catch,catch)历史最通俗易懂的承诺
- 糖豆人android,进击的糖豆人