package tris type PieceType int const ( IPiece PieceType = iota JPiece LPiece SPiece ZPiece TPiece OPiece ) type Point struct { X, Y int } type Piece struct { Type PieceType RelX int RelY int Layout []Point Lock int } type Bag []Piece type Field [20][10]bool func (f Field) String() (output string) { var toprow [10]bool var top bool for _, row := range f { top = !top for i, block := range row { if top { toprow[i] = block continue } switch { case toprow[i] && block: output += "\u2588" case toprow[i] && !block: output += "\u2580" case !toprow[i] && block: output += "\u2584" default: output += " " } } if !top { output += "\n" } } return output }