На python решаю задачу, где надо ввести координаты шахматной ячейки и найти все возвожные варинты хода конем с нее.
К примеру
ввод: B7 | вывод D6, C5, D8, A5 --- Это правильный ответ
ввод: B7 | вывод H6, C5, H8, A5 --- Это что выводит мой алгоритм
Вот код, почему - то часть координат правилная.
a = str(input('Введи координаты (типа D5): '))
alfavit = ['A','B','C','D','E','F','G','H']
doska = ([0,0,0,0,0,0,0,0]),([0,0,0,0,0,0,0,0]),([0,0,0,0,0,0,0,0]),([0,0,0,0,0,0,0,0]),([0,0,0,0,0,0,0,0]),([0,0,0,0,0,0,0,0]),([0,0,0,0,0,0,0,0]),([0,0,0,0,0,0,0,0])
chisla = [1,2,3,4,5,6,7,8]
#Создаю доску и нахожу координаты
for x in range(8):
for y in range(8):
doska[x][y] = str(alfavit[x] + str(chisla[y]))
if a == doska[x][y]:
coord1, coord2 = x, y
#В помощь проэкция доски
for i in range(8):
for j in range(8):
if j == 7:
print(doska[i][j],end = '\n')
else:
print (doska[i][j], end = ' ')
#Вычисляю куда пойдет
for o in [-1,1]:
for d in [-2,2]:
if coord1 + o > 7 or coord2 + o > 7 or coord1 + d > 7 or coord2 + d > 7 or coord1 + o < -1 or coord2 + o < -1 or coord1 + d < -1 or coord2 + d < -1:
continue
else:
print(doska[coord1 + o][coord2 + d])
print(doska[coord1 + d][coord2 + o])#Тут скоррее всего проблемма
Кстати нет ли в python какой нибудь функции вывода координат?