diff --git a/game/grid.go b/game/grid.go new file mode 100644 index 0000000..43adb71 --- /dev/null +++ b/game/grid.go @@ -0,0 +1,32 @@ +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 +}