Вывод возможных ходов слона на шахматной доске при столкновении с дружественной фигурой
Пишу программу, которая отображает координаты возможных ходов двух фигур, в данном случае слонов, на шахматной доске. Если фигура B стоит на пути фигуры А, список возможных ходов фигуры А не будет содержать координату, на которой стоит фигура В и все координаты за фигурой В .
def positions_for_two_bishop():
print('Enter first figure position\n')
while True:
v1 = input('Enter vertical position (A-H): ')
if ord(v1) in range(ord('a'), ord('h') + 1):
break
while True:
h1 = int(input('Enter horizontal position (1-8): '))
if h1 in range(1, 9):
break
print('Enter second figure position\n')
while True:
v2 = input('Enter vertical position (A-H): ')
if ord(v2) in range(ord('a'), ord('h') + 1):
break
while True:
h2 = int(input('Enter horizontal position (1-8): '))
if h2 in range(1, 9):
break
for i in range(ord('a'), ord('h') + 1):
for j in range(1, 9):
if( ( abs( i - ord(v1) ) == abs( j - h1 ) ) and ( i != ord(v1) or j != h1 ) ):
if ( i != ord(v2) and j != h2 ):
move = chr(i) + str(j)
moves.append(move)
print(f'B on {v1 + str(h1)}: {moves}')
При выполнении данного кода координаты клетки, на которой стоит вторая фигура, не выводятся. Но программа считает клетки за второй фигурой за возможные ходы, так как цикл проходит по этим координатам раньше, чем встречает клетку, на которой стоит вторая фигура.