Advertisement
vasil_k_k

02. Pawn Wars

Jun 10th, 2023 (edited)
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.17 KB | None | 0 0
  1. def check_if_pawn_becomes_a_queen(pawn, row, col, colour):
  2.     if pawn == "w" and row == 0 or pawn == "b" and row == 7:
  3.         quit(print(f"Game over! {colour} pawn is promoted to a queen at {chr(97 + col)}{8 - row}."))
  4.  
  5.  
  6. def move_pawn(pawn, row, col, colour):
  7.     one_row_forward = row - 1 if pawn == "w" else row + 1
  8.     plus_one_minus_one = 1
  9.     chess_board[row][col] = "-"
  10.  
  11.     for _ in range(2):
  12.         if chess_board[one_row_forward][col + plus_one_minus_one] != "-":
  13.             quit(print(f"Game over! {colour} win, capture on {chr(97 + col + plus_one_minus_one)}{8 - one_row_forward}."))
  14.  
  15.         plus_one_minus_one *= -1
  16.  
  17.     chess_board[one_row_forward][col] = pawn
  18.  
  19.  
  20. def main(last_played="b"):
  21.     for i in range(64):
  22.         row, col = divmod(i, 8)
  23.  
  24.         if chess_board[row][col] in "wb" and chess_board[row][col] != last_played:
  25.             pawn = chess_board[row][col]
  26.             colour = "White" if pawn == "w" else "Black"
  27.             check_if_pawn_becomes_a_queen(pawn, row, col, colour)
  28.             move_pawn(pawn, row, col, colour)
  29.             main(pawn)
  30.  
  31.  
  32. chess_board = [[x for x in input().split() + ["-"]] for _ in range(8)]
  33. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement