public void ShouldParsePromotion(string notation, ChessPieceName piece) { StandardAlgebraicNotation.TryParse(notation, out var an).ShouldBeTrue(); an.PromotionPiece.HasValue.ShouldBeTrue(); an.PromotionPiece.Value.ShouldBe(piece); }
public void ShouldParsePieceName(string notation, ChessPieceName piece) { StandardAlgebraicNotation.Parse(notation); StandardAlgebraicNotation.TryParse(notation, out var an).ShouldBeTrue(); an.Piece.ShouldBe(piece); }
protected ChessPieceEntity(Colours player, ChessPieceName piece) { EntityType = (int)piece; EntityName = piece.ToString(); Owner = (int)player; Player = player; Piece = piece; }
public StandardAlgebraicNotation(ChessPieceName piece, int?fromFileX, int?fromRankY, int toFileX, int toRankY, SanMoveTypes moveType = SanMoveTypes.Move, ChessPieceName?promotionPiece = null, bool inCheck = false) { Piece = piece; FromFileX = fromFileX; FromRankY = fromRankY; ToFileX = toFileX; ToRankY = toRankY; MoveType = moveType; PromotionPiece = promotionPiece; InCheck = inCheck; CastleMove = CastleSide.None; }
public static char ToSanToken(ChessPieceName piece) { return(SanPieceNames[piece]); }
public void Should_find_promotions(string sanText, string expectedMoveText, Colours toPlay, ChessPieceName promotionPiece) { var builder = new ChessBoardBuilder() .Board(" k " + " P" + " " + " " + " " + " " + " " + " K " ); var game = ChessFactory.CustomChessGame(builder.ToGameSetup(), toPlay); var move = new SanMoveFinder(game.BoardState) .Find(sanText.ToSan(), toPlay); Assert.NotNull(move, "No move found!"); Assert.That(move.ToChessCoords(), Is.EqualTo(expectedMoveText)); var moveExtraData = move.ExtraData; Assert.NotNull(moveExtraData); var data = ChessFactory.MoveExtraData(toPlay, promotionPiece); Assert.That(move.ToChessCoords(), Is.EqualTo(expectedMoveText)); Assert.That(data, Is.EqualTo(moveExtraData), $"Unexpected promotion: {moveExtraData}"); }
public ChessPieceEntityFactoryTypeExtraData(Colours owner, ChessPieceName piece) { Owner = owner; PieceName = piece; }
public ChessPieceEntity Create(ChessPieceName pieceName, Colours colour) { return(Factory[pieceName](colour)); }
public bool Is(ChessPieceName piece) => piece == Piece;
public bool Is(Colours owner, ChessPieceName piece) => owner == Player && piece == Piece;
public static char ToChar(ChessPieceName piece, Colours owner) { var c = PieceNames.FirstOrDefault(n => n.Value == piece).Key; return(owner == Colours.White ? char.ToUpper(c) : char.ToLower(c)); }
public static ChessPieceEntityFactory.ChessPieceEntityFactoryTypeExtraData MoveExtraData(Colours owner, ChessPieceName piece) => new ChessPieceEntityFactory.ChessPieceEntityFactoryTypeExtraData(owner, piece);
private void WithPiece(ChessPieceName c) => _piece = c;