Новый кодер Python здесь, с приличным количеством c# опыта. Я пытаюсь выполнить это упражнение из раздела «Автоматизация скучной работы» с помощью Python:
Chess Dictionary Validator В этой главе мы использовали значение словаря {'1h': 'bking', '6 c ':' wqueen ',' 2g ':' bbishop ',' 5h ':' bqueen ',' 3e ':' wking '} для обозначения шахматной доски. Напишите функцию с именем isValidChessBoard (), которая принимает аргумент словаря и возвращает True или False в зависимости от того, действительна ли доска. На правильной доске будет ровно один черный король и ровно один белый король. У каждого игрока может быть не более 16 фигур, не более 8 пешек, и все фигуры должны находиться на допустимом поле от «1a» до «8h»; то есть кусок не может находиться в пространстве «9z». Названия фигур начинаются с буквы «w» или «b» для обозначения белых или черных, за которыми следуют «пешка», «конь», «слон», «ладья», «ферзь» или «король». Эта функция должна обнаруживать, когда ошибка привела к неправильной шахматной доске.
Мое текущее решение следующее: следующий код ...
print('Before Increment: ' + str(wPieces['king']) + ' white King(s), ' + str(bPieces['king']) + ' black King(s)')
bPieces[board[k][1:]] += 1
print('After Increment: ' + str(wPieces['king']) + ' white King(s), ' + str(bPieces['king']) + ' black King(s)')
... Я получаю прибавку к Черным Королям, как и ожидалось, но я также получаю приращение к Белым Королям. Я немного запутался. Есть ли какая-то глобальная переменная, которую мне здесь не хватает, или я просто пишу код gibberi sh?
Был бы очень признателен за вторую пару взглядов на эту. Заранее спасибо, Rev.