Advertisement
viligen

task_2

Feb 19th, 2022
782
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.17 KB | None | 0 0
  1. size = 8
  2. field = []
  3. black_row, black_col = None, None
  4. white_row, white_col = None, None
  5. winning_row, winning_col = None, None
  6. winner = ''
  7. for row in range(size):
  8.     field.append(input().split())
  9.     if 'w' in field[row]:
  10.         white_row, white_col = row, field[row].index('w')
  11.     if 'b' in field[row]:
  12.         black_row, black_col = row, field[row].index('b')
  13.  
  14. columns_mapper = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h'}
  15. rows_mapper = {0: 8, 1: 7, 2: 6, 3: 5, 4: 4, 5: 3, 6: 2, 7: 1}
  16.  
  17. is_promoted = False
  18. while True:
  19.     if (white_row - 1 >= 0 and white_col - 1 >= 0) and field[white_row - 1][white_col - 1] == 'b':
  20.         winning_row, winning_col = white_row - 1, white_col - 1
  21.         winner = 'White'
  22.         break
  23.     if (white_row - 1 >= 0 and white_col + 1 < size) and field[white_row - 1][white_col + 1] == 'b':
  24.         winning_row, winning_col = white_row - 1, white_col + 1
  25.         winner = 'White'
  26.         break
  27.  
  28.     if white_row - 1 > 0:
  29.         field[white_row][white_col] = '-'
  30.         white_row -= 1
  31.         field[white_row][white_col] = 'w'
  32.  
  33.     else:
  34.         winner = 'White'
  35.         winning_row, winning_col = white_row - 1, white_col
  36.         is_promoted = True
  37.         break
  38.  
  39.     if (black_row + 1 < size and black_col - 1 >= 0) and field[black_row + 1][black_col - 1] == 'w':
  40.         winning_row, winning_col = black_row + 1, black_col - 1
  41.         winner = 'Black'
  42.         break
  43.     if (black_row + 1 < size and black_col + 1 < size) and field[black_row + 1][black_col + 1] == 'w':
  44.         winning_row, winning_col = black_row + 1, black_col + 1
  45.         winner = 'Black'
  46.         break
  47.  
  48.     if black_row + 1 < size - 1:
  49.         field[black_row][black_col] = '-'
  50.         black_row += 1
  51.         field[black_row][black_col] = 'b'
  52.     else:
  53.         winner = "Black"
  54.         winning_row, winning_col = black_row + 1, black_col
  55.         is_promoted = True
  56.         break
  57.  
  58. if is_promoted:
  59.     print(f"Game over! {winner} pawn is promoted to a queen at {columns_mapper[winning_col]}{rows_mapper[winning_row]}.")
  60. else:
  61.     print(f"Game over! {winner} win, capture on {columns_mapper[winning_col]}{rows_mapper[winning_row]}.")
  62.  
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement