private void ProcessPieceByPlace(Size requredSize, string coloring, Size offset) { PieceIdentity identityToFind = new PieceIdentity { UnorderedSize = requredSize, Coloring = coloring }; int index = storage[identityToFind].Dequeue(); var piece = pieces[index]; while (!(piece.MatchBasePiece(basePiece) && piece.Size.Equals(requredSize))) piece.CommitNextRotation(); answer[index] = pieces[index].ToString(offset); }
public bool Equals(PieceIdentity other) { return UnorderedSize.Equals(other.UnorderedSize) && Coloring.Equals(other.Coloring); }
public Piece(Size size, string coloring) { Rotation = new[] { Side.Front, Side.Back, Side.Bottom, Side.Top, Side.Left, Side.Right }; Size = size; Coloring = coloring; Identity = new PieceIdentity { UnorderedSize = Size, Coloring = Coloring }; }