Не работает алгоритм по подсчету пешек на шахматной доске
подскажите пожалуйста. У меня задача посчитать количество пешек в безопасной позиции. Я создал виртуальную шахматную доску. У меня есть наборы позиций пешек, из 4 наборов не работает последний, это связано с тем, что я, фактически убрал самый нижний ряд из расчетов, т.к. физически, пешки не могут находиться на самом нижнем ряду. Но проблема, в том, что в одном из проверочных сетов, пешки располагаются по главной диагонали. И при использовании последнего сета, я не могу посчитать 1 пешку на нижнем ряду. Может быть есть решение для подсчета пешек и с нижним рядом, не исключая его? s = "b4", "d4", "f4", "c3", "e3", "g5", "d2" - ок
x = "b4", "c4", "d4", "e4", "f4", "g4", "e5" - ок
f = "a1","b2","c3","d4","e5","f6","g7","h8" - ок ( при исключении нижнего ряда) last = "a8","b7","c6","d5","e4","f3","g2","h1" - неправильный результат.
for i in range(8, 0, -1):
for j in 'abcdefgh':
chess.append(j + str(i))
y = 0
indexes = [i for i in last if chess.index(i) < 55]
for i in indexes:
if chess[chess.index(i) + 7] in last or chess[chess.index(i) + 9] in last:
y += 1
print(y) ```
Ответы (1 шт):
У вас само условие противоречиво. Написано: "пешки не могут находиться на самом нижнем ряду. Но проблема, в том, что в одном из проверочных сетов, пешки располагаются по главной диагонали." -т.е. они находятся. Соответственно, не надо исключать нижний ряд.