diff --git a/chess.nim b/chess.nim index 912b39e..ed3440d 100644 --- a/chess.nim +++ b/chess.nim @@ -227,7 +227,7 @@ proc gen_rook_dests(game: Game, field: int, color: Color): seq[int] = for move in Rook_Moves: dest = field+move target = game.pieces.get_field(dest) - while (target != 999 and (ord(color) * target <= 0) or target == EnPassantID): + while (target != 999 and (ord(color) * target <= 0) or target == EnPassantID): res.add(dest) if (ord(color) * target < 0 and ord(color) * target > -EnPassantID): break @@ -247,7 +247,7 @@ proc gen_queen_dests(game: Game, field: int, color: Color): seq[int] = for move in Queen_Moves: dest = field+move target = game.pieces.get_field(dest) - while (target != 999 and (ord(color) * target <= 0) or target == EnPassantID): + while (target != 999 and (ord(color) * target <= 0) or target == EnPassantID): res.add(dest) if (ord(color) * target < 0 and ord(color) * target > -EnPassantID): break @@ -267,9 +267,9 @@ proc gen_king_castle_dest(game: Game, field: int, color: Color): seq[int] = var half_dest: int var half_target: int for castle in King_Moves_White_Castle: - dest = field + castle + dest = field + castle target = game.pieces.get_field(dest) - half_dest = field + (int) castle/2 + half_dest = field + (int)castle/2 half_target = game.pieces.get_field(half_dest) if (target == 999 or (target != 0)): continue @@ -343,7 +343,8 @@ proc gen_pawn_double_dests(game: Game, field: int, color: Color): seq[int] = for doubles in Pawn_Moves_White_Double: dest = field + doubles * ord(color) target = game.pieces.get_field(dest) - if (game.moved.get_field(field) or (target != 0) or (game.pieces.get_field(dest+(S*ord(color))) != 0)): + if (game.moved.get_field(field) or (target != 0) or ( + game.pieces.get_field(dest+(S*ord(color))) != 0)): continue res.add(dest) return res @@ -380,8 +381,8 @@ proc piece_on(game: Game, color: Color, sequence: seq[int], proc is_attacked(game: Game, position: int, color: Color): bool = ## Check if a field is attacked by the opposite of `color` in a `game`. var attacked = false - attacked = attacked or game.piece_on(color, game.gen_pawn_attack_dests(position, - color), PawnID) + attacked = attacked or game.piece_on(color, game.gen_pawn_attack_dests( + position, color), PawnID) attacked = attacked or game.piece_on(color, game.gen_queen_dests(position, color), QueenID) attacked = attacked or game.piece_on(color, game.gen_king_dests(position, @@ -429,7 +430,7 @@ proc remove_en_passant(pieces: var Pieces, color: Color): void = ## Removes every en passant of given `color` from the `game`. for field in pieces.low..pieces.high: if pieces.get_field(field) == ord(color) * EnPassantID: - pieces.set_field(field,0) + pieces.set_field(field, 0) proc gen_legal_knight_moves(game: Game, field: int, color: Color): seq[Move] = ## Generates all legal knight moves starting from `field` in a `game` for a `color`. @@ -599,7 +600,7 @@ proc checked_move*(game: var Game, move: Move): bool {.discardable.} = var move: Move move = get_move(start, dest, color) if (piece == PawnID * ord(color)): - create_en_passant = dest in game.gen_pawn_double_dests(start,color) + create_en_passant = dest in game.gen_pawn_double_dests(start, color) captured_en_passant = (game.pieces.get_field(dest) == -1 * ord(color) * EnPassantID) sequence.add(game.gen_legal_moves(start, color)) if (move in sequence): @@ -612,10 +613,11 @@ proc checked_move*(game: var Game, move: Move): bool {.discardable.} = game.unchecked_move(start, dest) game.to_move = Color(ord(game.to_move)*(-1)) if create_en_passant: - game.pieces.set_field(dest-(N*ord(color)),EnPassantID * ord(color)) + game.pieces.set_field(dest-(N*ord(color)), EnPassantID * ord(color)) if captured_en_passant: - game.pieces.set_field(dest-(N*ord(color)),0) - if ((90 < dest and dest < 99) or (20 < dest and dest < 29)) and game.pieces.get_field(dest) == PawnID * ord(color): + game.pieces.set_field(dest-(N*ord(color)), 0) + if ((90 < dest and dest < 99) or (20 < dest and dest < 29)) and + game.pieces.get_field(dest) == PawnID * ord(color): game.pieces.set_field(dest, prom) return true except IndexDefect, ValueError: