public PuzzlePiecePosition(PuzzlePiece piece, Point position) { this.Piece = piece; this.Position = position; }
public PuzzlePiecePosition(PuzzlePiece piece) : this(piece, new Point(0,0,0)) { }
public PuzzleMove(PuzzleState startingState, PuzzlePiece movingPiece, Point direction) : this(startingState, new[] { movingPiece }, direction) { }
public PuzzlePiecePosition GetPiecePosition(PuzzlePiece piece) { return Pieces.Single(p => p.Piece == piece); }
public PuzzleMove(PuzzleState startingState, PuzzlePiece movingPiece, Point direction, bool isRemoval) : this(startingState, movingPiece, direction) { this.IsRemoval = isRemoval; }