Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- size = 8
- field = []
- black_row, black_col = None, None
- white_row, white_col = None, None
- winning_row, winning_col = None, None
- winner = ''
- for row in range(size):
- field.append(input().split())
- if 'w' in field[row]:
- white_row, white_col = row, field[row].index('w')
- if 'b' in field[row]:
- black_row, black_col = row, field[row].index('b')
- columns_mapper = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h'}
- rows_mapper = {0: 8, 1: 7, 2: 6, 3: 5, 4: 4, 5: 3, 6: 2, 7: 1}
- is_promoted = False
- while True:
- if (white_row - 1 >= 0 and white_col - 1 >= 0) and field[white_row - 1][white_col - 1] == 'b':
- winning_row, winning_col = white_row - 1, white_col - 1
- winner = 'White'
- break
- if (white_row - 1 >= 0 and white_col + 1 < size) and field[white_row - 1][white_col + 1] == 'b':
- winning_row, winning_col = white_row - 1, white_col + 1
- winner = 'White'
- break
- if white_row - 1 > 0:
- field[white_row][white_col] = '-'
- white_row -= 1
- field[white_row][white_col] = 'w'
- else:
- winner = 'White'
- winning_row, winning_col = white_row - 1, white_col
- is_promoted = True
- break
- if (black_row + 1 < size and black_col - 1 >= 0) and field[black_row + 1][black_col - 1] == 'w':
- winning_row, winning_col = black_row + 1, black_col - 1
- winner = 'Black'
- break
- if (black_row + 1 < size and black_col + 1 < size) and field[black_row + 1][black_col + 1] == 'w':
- winning_row, winning_col = black_row + 1, black_col + 1
- winner = 'Black'
- break
- if black_row + 1 < size - 1:
- field[black_row][black_col] = '-'
- black_row += 1
- field[black_row][black_col] = 'b'
- else:
- winner = "Black"
- winning_row, winning_col = black_row + 1, black_col
- is_promoted = True
- break
- if is_promoted:
- print(f"Game over! {winner} pawn is promoted to a queen at {columns_mapper[winning_col]}{rows_mapper[winning_row]}.")
- else:
- print(f"Game over! {winner} win, capture on {columns_mapper[winning_col]}{rows_mapper[winning_row]}.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement