feat(grid): add ClearFullRows()
This commit is contained in:
parent
1d7423d886
commit
2a7f394b7f
1 changed files with 13 additions and 0 deletions
13
game/grid.go
13
game/grid.go
|
|
@ -31,6 +31,19 @@ func (g *Grid) Set(x, y byte, c Block) {
|
|||
(*g)[uint16(x)+(uint16(y)*GRID_WIDTH)] = c
|
||||
}
|
||||
|
||||
func (g *Grid) ClearFullRows() byte {
|
||||
completed := byte(0)
|
||||
for y := int(g.Height() - 1); y >= 0; y-- {
|
||||
if g.IsRowFull(byte(y)) {
|
||||
completed++
|
||||
g.ClearRow(byte(y))
|
||||
} else if completed > 0 {
|
||||
g.MoveRowDown(byte(y), completed)
|
||||
}
|
||||
}
|
||||
return completed
|
||||
}
|
||||
|
||||
func (g *Grid) IsRowFull(y byte) bool {
|
||||
for x := range byte(g.Width()) {
|
||||
if g.At(x, y) == BLOCK_EMPTY {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue