 
Нужно доделать программу "Ход коня" отдам быллы которые смогу. def cell_to_cords(cell_name):
letter_to_cord = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8} return letter_to_cord[cell_name[0]], int(cell_name[1])def cords_to_name(cords): name = {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F', 7: 'G', 8: 'H'} return name[cords[0]] + str(cords[1])def generate_possible_moves(cords): move_deltas = [(-2, -1), (-2, 1), (-1, -2), (-1, 2), (1, -2), (1, 2), (2, -1), (2, 1)] # Из текущей координаты нужно получить список из 8 возможных координат для движения коня (формат результата - см. строку выше) passdef generate_correct_moves(possible_moves): # Из восьми возможных конечных координат коня отсеивает те, что выходят за пределы доски passdef get_possible_knight_moves(cur_knight_pos): possible_moves = generate_possible_moves(cell_to_cords(cur_knight_pos)) correct_moves = generate_correct_moves(possible_moves) for move in range(len(correct_moves)): correct_moves[move] = cords_to_name(correct_moves[move]) return sorted(correct_moves)if __name__ == '__main__': current_knight_pos = input('Enter current knight position:') print(*get_possible_knight_moves(current_knight_pos)) 0
        0
         0
        0
    Ответы на вопрос
 
        Ответ:
Можно вместо функции перевода из буквы в число и наоборот использовать ord и c h r, например:
ord(start[0]) - ord('A') + 1
и
c h r(x + ord('A') - 1)
Функциям поменял название, но думаю это непринципиально.
Доработанный код:
gist.github.com/Ruletk/c648b676a68f00420dce0d441fd39844
Сюда к сожалению код не хочет вставляться, поэтому на гист закинул.
UPD: Забавно, сайт блокирует c h r, из за этого я не могу скинуть код сюда...
 0
                    0
                     0
                    0
                 
            Программа "Ход коня" требует доработки функций generate_possible_moves и generate_correct_moves. Вам также потребуется добавить функцию is_valid_cords для проверки, находится ли конечная координата в пределах доски. Вот исправленный код:
pythondef cell_to_cords(cell_name):
    letter_to_cord = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8}
    return letter_to_cord[cell_name[0]], int(cell_name[1])
def cords_to_name(cords):
    name = {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F', 7: 'G', 8: 'H'}
    return name[cords[0]] + str(cords[1])
def is_valid_cords(cords):
    return 1 <= cords[0] <= 8 and 1 <= cords[1] <= 8
def generate_possible_moves(cords):
    move_deltas = [(-2, -1), (-2, 1), (-1, -2), (-1, 2), (1, -2), (1, 2), (2, -1), (2, 1)]
    possible_moves = [(cords[0] + dx, cords[1] + dy) for dx, dy in move_deltas]
    return possible_moves
def generate_correct_moves(possible_moves):
    correct_moves = [move for move in possible_moves if is_valid_cords(move)]
    return correct_moves
def get_possible_knight_moves(cur_knight_pos):
    cords = cell_to_cords(cur_knight_pos)
    possible_moves = generate_possible_moves(cords)
    correct_moves = generate_correct_moves(possible_moves)
    return [cords_to_name(move) for move in correct_moves]
if __name__ == '__main__':
    current_knight_pos = input('Enter current knight position:')
    print(*get_possible_knight_moves(current_knight_pos))
Теперь программа должна правильно генерировать и выводить все возможные ходы коня из заданной позиции и проверять, находятся ли они в пределах доски.
 0
                    0
                     0
                    0
                Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
- 
			Математика 
- 
			Литература 
- 
			Алгебра 
- 
			Русский язык 
- 
			Геометрия 
- 
			Английский язык 
- 
			Химия 
- 
			Физика 
- 
			Биология 
- 
			Другие предметы 
- 
			История 
- 
			Обществознание 
- 
			Окружающий мир 
- 
			География 
- 
			Українська мова 
- 
			Информатика 
- 
			Українська література 
- 
			Қазақ тiлi 
- 
			Экономика 
- 
			Музыка 
- 
			Право 
- 
			Беларуская мова 
- 
			Французский язык 
- 
			Немецкий язык 
- 
			МХК 
- 
			ОБЖ 
- 
			Психология 
- 
			Физкультура и спорт 
- 
			Астрономия 
- 
			Кыргыз тили 
- 
			Оʻzbek tili 
 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			