选择困难症的福音——团队Scrum冲刺阶段-Day 7
选择困难症的福音——团队Scrum冲刺阶段-Day 7
今日进展
测试代码
将界面设计完后放app使用示意图于此
今日贡献量
| 严域俊 | 吴恒佚 | 曾程 | 刘辰 | 邓煜坤 |
|---|---|---|---|---|
| 3.5 | 3.5 | 3.3 | 3.6 | 3 |
贡献量汇总
| 日期 | 严域俊 | 吴恒佚 | 曾程 | 刘辰 | 邓煜坤 |
|---|---|---|---|---|---|
| 第2天 | 3 | 3.5 | 2.5 | 3.2 | 2.6 |
| 第3天 | 3.5 | 3.5 | 3.3 | 3.6 | 3 |
| 第4天 | 3.5 | 3.5 | 3.3 | 3.6 | 3 |
| 第5天 | 3.4 | 3.1 | 3.3 | 3.5 | 3.1 |
| 第6天 | 3.4 | 3 | 3 | 3.5 | 3.2 |
| 第7天 | 3.5 | 3.5 | 3.3 | 3.6 | 3 |
| 合计 | 20 | 21 | 19 | 21 | 19 |
站立式会议

TODOlist


项目的发布说明
- CanMoveToLeft(能否左移动)、CanMoveToRight(能否右移动)
构建的方法:2个依据,根据方块的x方位与本体所占的格之和是否与最大(最小)x轴重合或者已有方块重合
public static boolean canMoveToLeft(List<BlockUnit> blockUnits, int max_x, List<BlockUnit> allBlockUnits) {
for (BlockUnit blockUnit : blockUnits) {
int x = blockUnit.x;
if (x - UNIT_SIZE < BEGIN) {
return false;
}
int y = blockUnit.y;
if (isSameUnit(x - UNIT_SIZE, y, allBlockUnits)) {
return false;
}
}
return true;
}
public static boolean canMoveToRight(List<BlockUnit> blockUnits, int max_x, List<BlockUnit> allBlockUnits) {
for (BlockUnit blockUnit : blockUnits) {
int x = blockUnit.x;
if (x + UNIT_SIZE > max_x - UNIT_SIZE) {
return false;
}
int y = blockUnit.y;
if (isSameUnit(x + UNIT_SIZE, y, allBlockUnits)) {
return false;
}
}
return true;
}
- CanMoveToDown(能否向下)
构建的方法:2个依据,方块的y轴+方块大小是否到底,以及是否重合。
public static boolean canMoveToDown(List<BlockUnit> blockUnits, int max_y, List<BlockUnit> allBlockUnits) {
for (BlockUnit blockUnit : blockUnits) {
int x = blockUnit.x;
int y = blockUnit.y + UNIT_SIZE * 2;
if (y > max_y - UNIT_SIZE) {
return false;
}
if (isSameUnit(x, y, allBlockUnits)) {
return false;
}
}
return true;
}
以上方法均为循环(知识点:列表)
- CanRoute(能否旋转)
构建方法:1个依据、是否有重叠的方块,调用isSameUnit
public static boolean canRoute(List<BlockUnit> blockUnits, List<BlockUnit> allBlockUnits) {
for (BlockUnit blockUnit : blockUnits) {
if (isSameUnit(blockUnit.x, blockUnit.y, allBlockUnits)) {
return false;
}
}
return true;
}
- CanCoutinueGame(能否继续游戏)
构建方法:1个依据、y轴是否小于等于y轴最高
public static boolean canContinueGame(List<BlockUnit> allBlockUnits) {
if (allBlockUnits.size() == 0) {
return true;
}
for (BlockUnit blockUnit : allBlockUnits) {
if (blockUnit.y <= BlockUnit.BEGIN) {
return false;
}
}
return true;
}
- toLeft、toRight、toDown(左、右、下移)
构建方法:进行相应的Canxx方法判断左、右、下移进行改动对应的x、y值
public static boolean toLeft(List<BlockUnit> blockUnits, int max_x, List<BlockUnit> allBlockUnits) {
if (canMoveToLeft(blockUnits, max_x, allBlockUnits)) {
for (BlockUnit blockUnit : blockUnits) {
blockUnit.x = blockUnit.x - UNIT_SIZE;
}
return true;
}
return false;
}
public static boolean toRight(List<BlockUnit> blockUnits, int max_x, List<BlockUnit> allBlockUnits) {
if (canMoveToRight(blockUnits, max_x, allBlockUnits)) {
for (BlockUnit blockUnit : blockUnits) {
blockUnit.x = blockUnit.x + UNIT_SIZE;
}
return true;
}
return false;
}
public static void toDown(List<BlockUnit> blockUnits, int max_Y, List<BlockUnit> allBlockUnits) {
for (BlockUnit blockUnit : blockUnits) {
blockUnit.y = blockUnit.y + BlockUnit.UNIT_SIZE;
}
}
- isSameUnit(相同方法)
构建方法:与之前找相同判断类似
public static boolean isSameUnit(int x, int y, List<BlockUnit> allBlockUnits) {
for (BlockUnit blockUnit : allBlockUnits) {
if (Math.abs(x - blockUnit.x) < UNIT_SIZE && Math.abs(y - blockUnit.y) < UNIT_SIZE) {
return true;
}
}
return false;
}
- remove(满减)
构建方法:当达到满的时候,进行逆向遍历得到该行,并删除该行
(知识点:逆向遍历)
public static void remove(List<BlockUnit> allBlockUnits, int j) {
for (int i = allBlockUnits.size() - 1; i >= 0; i--) {
if ((int) ((allBlockUnits.get(i).y - BEGIN) / 50) == j)
allBlockUnits.remove(i);
}
}
GameConfit(游戏布局)
把速度设计为400NextBlockView(定义了下一个方块的构建)
调用android.Content.Context
| android.Content.Context | 知识点 |
|---|---|
| android.graphics.Canvas | 背景 |
| android.graphics.Color | 颜色 |
| android.graphics.Paint | 绘画 |
| android.graphics.RectF | 网格 |
利用的知识点是数组列表
NextBlockView(其构造方法):
- 用于设置背景颜色
- 用于设置方块颜色
FetrisActivityAW(俄罗斯方块主程序)
调用:1. NextBlockView
2. TetrisViewAW
StartGame:调用T·etrisViewAW中的同名方法
PauseGame:调用T·etrisViewAW中的同名方法
ContinueGame:调用T·etrisViewAW中的同名方法
StopGame:调用T·etrisViewAW中的同名方法,并将得分设置为0
to Left、to Right、to Route、on Destroy:前三个方法调用调用T·etrisViewAW中的同名方法,最后一个调用调用T·etrisViewAW中的stopGame方法TetrisViewAw(定义基本参数和运动方法)
变量:beginpoint=10(网格开始值与横坐标开始值)
Max_x、Max_y:俄罗斯方块的最大坐标
num_x=0,num_y=0:行数和列数
paintWall:背景画笔 使用的Paint
paintBlock:单元块画笔 使用的Paintmap[100]:每一行网格中俄罗斯方块的个数
主要方法:- OnDraw(绘制网格、构建方块(单个及所有))
- Startgame:根据定义变量mainThread的状态(true、false、null来判断开始下一局)
- pauseGame:根据主要变量runningstatus状态调节为false进行暂停
- continueGame:将runningstatus、gamestatues、mainThread均调为false或null,并清除方块,再出现“游戏结束”信息
- toLeft、toRight、route这些方法至于之前的定义类似
- trainY:调用trainYoneBlock方法,用于判断方块外出界恢复情形方块处于边缘的时候,翻转的话有可能出位,这个方法用于递归判断是否出位并左右平移进行修改
- routeTran:类似trainY
- getNewBlock:用于获取新的方块,并显示下一个方块
- deleteBlock:与前面类中的方法类似
- 定义类中类(私有):MainThread主线程
- run:该方法用于判断是否可以下落、可否消除、可否继续、更新网络中的方格,刷新分数
- TetrisBlock:returnUnit:随机产生一种方块,其中种类随机、方向默认、定义了7个类型方块,到时候可以以随机数的形式进行选择
FetrisActivityAW(俄罗斯方块主程序)
调用:1. NextBlockView
2. TetrisViewAW
StartGame:调用T·etrisViewAW中的同名方法
PauseGame:调用T·etrisViewAW中的同名方法
ContinueGame:调用T·etrisViewAW中的同名方法
StopGame:调用T·etrisViewAW中的同名方法,并将得分设置为0
to Left、to Right、to Route、on Destroy:前三个方法调用调用T·etrisViewAW中的同名方法,最后一个调用调用T·etrisViewAW中的stopGame方法
决策树的类图

数据库类图

主方法类图

主方法类图重新排序的

俄罗斯方块类图

贪吃蛇类图

选择困难症的福音——团队Scrum冲刺阶段-Day 7的更多相关文章
- 选择困难症的福音——团队Scrum冲刺阶段-Day 1领航
选择困难症的福音--团队Scrum冲刺阶段-Day 1领航 各个成员在 Alpha 阶段认领的任务 小组成员 分工 任务量 严域俊 完成小游戏接口部分.小游戏编写部分 21 吴恒佚 决策判断部分.小游 ...
- 选择困难症的福音——团队Scrum冲刺阶段-Day 2
选择困难症的福音--团队Scrum冲刺阶段-Day 2 今日进展 编写提问部分 如何将不同的问题选项连接到不同的下一个问题 如何保证问题的链接不会弄丢 登陆注册界面 完成密码可见与不可见的更改 ui界 ...
- 选择困难症的福音——团队Scrum冲刺阶段-Day 3
选择困难症的福音--团队Scrum冲刺阶段-Day 3 今日进展 编写提问部分 做了不同问题所对应的游戏选项,但关于游戏分类的界面还没有做完 登陆注册界面 更改ui界面,ui界面终于变好看了:) 学习 ...
- 选择困难症的福音——团队Scrum冲刺阶段-Day 4
选择困难症的福音--团队Scrum冲刺阶段-Day 4 今日进展 编写提问部分 做了不同问题所对应的游戏选项,但关于游戏分类的界面还没有做完 增加功能 昨天在主界面增加"关于我们" ...
- 选择困难症的福音——团队Scrum冲刺阶段-Day5(补发 那天csshow)
选择困难症的福音--团队Scrum冲刺阶段-Day 5 今日进展 编写提问部分 游戏分类的界面 将之前错误的图标改正 关于我们的俄罗斯方块,今天有了新的进展 NextBlockView(定义了下一个方 ...
- 团队Scrum冲刺阶段-Day 6
选择困难症的福音--团队Scrum冲刺阶段-Day 6 今日进展 编写提问部分 游戏分类的界面全部写完了!!!! 临时大家决定没有BGM的app不是一个完整的app,所以在大家共同学习的努力下,听完四 ...
- 高能天气——团队Scrum冲刺阶段-Day 1-领航
高能天气--团队Scrum冲刺阶段-Day 1-领航 各个成员在 Alpha 阶段认领的任务 经过重新的团队讨论,我们最新确定的α版本所需实现内容如下: 查找城市:切换城市按钮.滑动界面视图 天气预报 ...
- 高能天气——团队Scrum冲刺阶段-Day 2
高能天气--团队Scrum冲刺阶段-Day 2 今日完成任务 于欣月:实现滑动界面视图,天气预报UI组件的初步优化 滑动界面 实现代码 //Activity中 //请求新选择城市的天气信息 navBu ...
- 高能天气——团队Scrum冲刺阶段-Day 7 总结
高能天气--团队Scrum冲刺阶段-Day 7 总结 今日完成任务 于欣月:修改项目说明书,帮助修改应用 余坤澎:进行应用整合的收尾工作 康皓越:进行应用整合的收尾工作 范雯琪:修改项目说明书,完成项 ...
随机推荐
- 关于STL容器
容器: 概念:如果把数据看做物体,容器就是放置这些物体的器物,因为其内部结构不同,数据摆放的方式不同,取用的方式也不同,我们把他们抽象成不同的模板类,使用时去实例化它 分类: 序列容器.关联容器.容器 ...
- 命令:jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
命令:jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令 这些命令 必须 在 linux jdk bin 路径 下执行 eq: ./jstack 10303 即可 如果想把 ...
- VUE中如何优雅的动态绑定长按事件
答案没有: 图片是从后端传过来, 加到imgTarget属性,实现长按点击删除该图片 let img = document.createElement('img'); img.src = " ...
- 枚举、反射等 GetEnumName GetEnumDescription
/// <summary> /// Retrieves the name of the constant in the specified enumeration that has the ...
- windows下有个目录名称中间有空格 java读目录空格变成%20 处理方法
String path=Parameter.class.getResource("").getPath();//得到路径//String path=Parameter.class. ...
- vue1 & vue2 数据驱动更新视图机制对比
vue1 小粒度更新,精确追踪到数据变化所影响的dom变化,精确更新变化的dom 具体实现为,维护 observer watcher directive 三个类 ·observer负责监听数据变化,并 ...
- docker 学习(九) docker部署静态网站
一: dockerfile, 把Dockerfile和myfolder放在一个目录下: FROM httpd:2.4 COPY ./myfolder/ /usr/local/apache2/htdo ...
- laydate.js在火狐下的定位问题
这个情况不知道在火狐的什么情况下会出现这个问题,但是他的demo定位在火狐下是没有问题的. 正常情况下展示位置是这样的 但是呢,在我的火狐下展示的位置是这样的. 哎,默默的读源码吧: 源码: 修改后的 ...
- android 开发 View _5_ Paint详解
转载:http://blog.csdn.net/abcdef314159 //Paint的setStyle,Style共有3种 setStyle(Style style) Paint.Style.FI ...
- python——位运算之进制转化
>>> a=0b001100 >>> a 12 >>> b=0o001100 >>> b 576 >>> c= ...