Превращение пешки

Всем здравствуйте,давно меня тут не было,но появилась проблема с задачей...

По шахматным правилам при достижении пешкой противоположной стороны поля её можно заменить на любую другую фигуру этого же цвета, кроме пешки и короля.

После замены на поле может оказаться более одного ферзя одинакового цвета, более двух ладей и так далее.

Нужно добавить в класс Board из файла, прилагающегося к уроку, метод move_and_promote_pawn. Вызов метода выглядит следующим образом: board.move_and_promote_pawn

Параметры row и col — координаты клетки, в которой изначально стоит пешка, row1 и col1 — координаты клетки, в которую она должна совершить ход, а char — символ фигуры, в которую нужно превратить пешку. 'Q' обозначает ферзя, 'R' — ладью, 'B' — слона, 'N' — коня.

Пешка может оказаться в крайнем ряду как в результате обычного хода, так и взятия фигуры. Превращение выполняется в обоих случаях.

Если пешка не может достигнуть последнего ряда из клетки (row, col), то перемещение и превращение происходить не должны, и метод должен вернуть False. Если продвижение в крайний ряд и превращение возможны, следует выполнить их и вернуть True.