package tris var HoldPiece Piece var HoldBox Field var Swapped bool func (b Bag) Swap(p Placement) (Bag, Placement) { if Swapped { return b, p } var tempp Placement if HoldPiece == EmptyPiece { b, tempp = b.Pick() HoldPiece = tempp.piece } p.piece, HoldPiece = HoldPiece, p.piece Swapped = true HoldBox, _ = Placement{piece: HoldPiece, X: 0, Y:0}.Field(2,4) p.Rot, p.X, p.Y = 0, 3, -2 return b, p }