package game import ( "tetris/engine/graphics" ) const ( GRID_WIDTH = 10 GRID_HEIGHT = 16 ) type Grid [GRID_WIDTH * GRID_HEIGHT]Block func (Grid) Width() int32 { return GRID_WIDTH } func (Grid) Height() int32 { return GRID_HEIGHT } func (g Grid) At(x, y byte) Block { return g[uint16(x)+(uint16(y)*GRID_WIDTH)] } func (g Grid) Tile(x, y byte) graphics.Tile { return g.At(x, y).Tile() } func (g *Grid) Set(x, y byte, c Block) { (*g)[uint16(x)+(uint16(y)*GRID_WIDTH)] = c } func (g *Grid) IsRowFull(y byte) bool { for x := range byte(g.Width()) { if g.At(x, y) == BLOCK_EMPTY { return false } } return true }