Напишите программу, которая на вход получает координаты двух клеток шахматной доски и выводит соощение о том, являются ли эти клетки одного цвета. Формат ввода: c2 e4
ВНИМАТЕЛЬНО! Формат ввода это буква и число. А не число и число.
список просто является словариком для букв, чтоб можно было выдать им численное значение
в первую ячейку списка вносится численное значение буквы(горизонтали), а во вторую просто численное значение по вертикали
далее идет проверка на цвет:
глядя на шахматную доску, можно увидеть некую закономерность
в строке 1(нечетная) к каждой нечетной букве соответствует черная ячейка, а в строке 2(четная) наоборот. Это говорит о том, что по вертикали идет сдвиг то вправо, то влево. Суть проверки заключается в том, что мы добавляем численное значение по горизонтали и добавляем к нему остаток от деления на два значения по вертикали, сумму так же проверяем на четность, если сумма нечетная - 1(черная), иначе - 0 (белая)
Answers & Comments
Ответ:
a=input().lower()
b=input().lower()
mas=["a","b","c","d","e","f","g","h"]
a=[mas.index(a[0]) + 1] + [int(a[1])]
b=[mas.index(b[0]) + 1] + [int(b[1])]
a_bool=(a[0] + a[1]%2)%2
b_bool=(b[0] + b[1]%2)%2
if a_bool == b_bool:
print("Клетки одного цвета")
Объяснение:
вводятся два значения
список просто является словариком для букв, чтоб можно было выдать им численное значение
в первую ячейку списка вносится численное значение буквы(горизонтали), а во вторую просто численное значение по вертикали
далее идет проверка на цвет:
глядя на шахматную доску, можно увидеть некую закономерность
в строке 1(нечетная) к каждой нечетной букве соответствует черная ячейка, а в строке 2(четная) наоборот. Это говорит о том, что по вертикали идет сдвиг то вправо, то влево. Суть проверки заключается в том, что мы добавляем численное значение по горизонтали и добавляем к нему остаток от деления на два значения по вертикали, сумму так же проверяем на четность, если сумма нечетная - 1(черная), иначе - 0 (белая)
Потом просто идет сравнение