Помогите решить задачку по пайтону
Помогите решить задачку по пайтону.
I = int(input("ведите номер столбца 1,2,3,4,5,6,7,8 "))
Nomer_stroki = input("Введите номер строки a,b,c,d,e,f,g,h ")
if Nomer_stroki==a and i%2==0:
print("Beloe")
elif Nomer_stroki==b and i%2!=0 and i<=8:
print("Beloe")
elif Nomer_stroki==c and i%2==0 and i<=8:
print("Beloe")
elif Nomer_stroki==d and i%2!=0 and i<=8:
print("Beloe")
elif Nomer_stroki==e and i%2==0 and i<=8:
print("Beloe")
elif Nomer_stroki==f and i%2!=0 and i<=8:
print("Beloe")
elif Nomer_stroki==g and i%2==0 and i<=8:
print("Beloe")
else :
print("Chernoe")
print("Такой клетки нету")
Суть простая шахматная доска, 8х8, определить цвет квадрата, 1а - черная. Нужно чтобы я ввел и по горизонтали и по вертикали, программка определила где черная, где белая.
Проблема в том, что я задаю в переменную Nomer_stroki столбец и пытаюсь его сравнить соответствует ли он номерку заданному, но он пишет что номер строки не задан. Как это исправить ?
Ответы (3 шт):
Автор решения: arnold
→ Ссылка
i = int(input("ведите номер столбца 1,2,3,4,5,6,7,8 "))
Nomer_stroki = input("Введите номер строки a,b,c,d,e,f,g,h ")
list1 = [1, 2, 3, 4, 5, 6, 7, 8]
list2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
if Nomer_stroki == 'a' and i % 2 == 0 and i <= 8:
print("Beloe")
elif Nomer_stroki == 'b' and i % 2 != 0 and i <= 8:
print("Beloe")
elif Nomer_stroki == 'c' and i % 2 == 0 and i <= 8:
print("Beloe")
elif Nomer_stroki == 'd' and i % 2 !=0 and i <= 8:
print("Beloe")
elif Nomer_stroki == 'e' and i % 2 == 0 and i <= 8:
print("Beloe")
elif Nomer_stroki == 'f' and i % 2 != 0 and i <= 8:
print("Beloe")
elif Nomer_stroki == 'g' and i % 2 == 0 and i <= 8:
print("Beloe")
elif i not in list1 or Nomer_stroki not in list2:
print("Такой клетки нету")
else:
print("Chernoe")
Автор решения: tonysdev
→ Ссылка
Ну примерно как-то так сделал бы я
columns = [1, 2, 3, 4, 5, 6, 7, 8]
lines = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
print("Доступные столбцы:", columns)
print("Доступные строки:", lines)
column = int(input('Введите номер столбца: '))
line = str(input('Введите букву строки: '))
if (column in columns) and (line in lines):
column = columns.index(column) + 1
line = lines.index(line) + 1
if (column % 2 != 0) and (line % 2 != 0):
print("Черное поле")
elif (column % 2 == 0) and (line % 2 == 0):
print("Черное поле")
elif (column % 2 != 0) and (line % 2 == 0):
print("Белое поле")
elif (column % 2 == 0) and (line % 2 != 0):
print("Белое поле")
else:
print("Строка или столбец не найдены.")
Автор решения: gil9red
→ Ссылка
Немного магии через остаток от деления для определения четного числа: если сумма индексов четная, то это черная клетка, иначе белая
Пример:
rows = '12345678'
cols = 'abcdefgh'
i = '1'
j = 'a'
idx_i, idx_j = rows.find(i), cols.find(j)
if idx_i == -1 or idx_j == -1:
print("Такой клетки нет")
else:
print('Черное' if (idx_i + idx_j) % 2 == 0 else 'Белое')
PS.
Визуально это можно так увидеть:
for idx_i in range(8):
for idx_j in range(8):
print('*' if (idx_i + idx_j) % 2 == 0 else ' ', end=' ')
print()
Результат:
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *