private
int
removeLine() {
Block[][] gameMap =
this
.gameData.getGameMap();
List<Integer> removeYList =
new
ArrayList<>();
for
(
int
y =
0
; y < gameMap[
0
].length; y++) {
boolean
remove =
true
;
for
(Block[] blocks : gameMap) {
if
(blocks[y] ==
null
|| !blocks[y].isFrozen()) {
remove =
false
;
break
;
}
}
if
(remove) {
removeYList.add(y);
}
}
int
removeLineCount = removeYList.size();
if
(removeLineCount >
0
) {
if
(DataConstant.ENABLE_TWINKLE) {
this
.removeLineTwinkle(gameMap, removeYList);
}
for
(Integer count : removeYList) {
for
(
int
y = count; y >=
0
; y--) {
for
(
int
x =
0
; x < gameMap.length; x++) {
if
(y -
1
>=
0
) {
gameMap[x][y] = gameMap[x][y -
1
];
}
else
{
gameMap[x][y] =
null
;
}
}
}
}
}
return
removeLineCount;
}