Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста решить! тренировочное задание по программированию : Шашки.

Виталий Фармазонов Ученик (99), закрыт 5 лет назад
На доске стоит белая шашка. Требуется определить, может ли она попасть в заданную клетку, делая ходы по правилам и не пользуясь ходами дамки (т. е. не используя возможность перемещаться назад после превращения в дамку). Белые шашки могут ходить по клеткам одного цвета по диагонали вверх-влево или вверх-вправо. Ходов может быть несколько!

Примечания

Доска имеет размер 8x8, вертикали и горизонтали нумеруются числами от 1 до 8 начиная с левого нижнего угла. Исходная и конечная клетки не совпадают.

Формат ввода

Вводится клетка, где стоит шашка, а затем клетка, куда шашка должна попасть.

Каждая клетка описывается номером вертикали, а затем номером горизонтали. Под номером вертикали имеется в виду не номер по вертикали, а номер вертикальной линии считая слева направо. Аналогичная формулировка используется для номера горизонтали: нумерация идет снизу вверх. Например, клетка A2 кодируется как 1 2.

Формат вывода

Выведите слово YES (заглавными буквами), если шашка может попасть из начальной клетки в указанную, и NO в противном случае.

я написал:
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if (x1 - x2) % 2 == (y1 - y2) % 2 and x2 > x1 and y2 > y1:
print('YES')
else:
print('NO')

тест 1
входные данные:
1
1
2
2
вывод программы:
YES

тест 2
входные данные:
1
1
8
7
вывод программы:
NO
пишут неправильное решение!
не пойму! что не так?!
Лучший ответ
Άηϑρέΰ ҂ Искусственный Интеллект (179807) 5 лет назад
а условие у тебя верное?
Виталий ФармазоновУченик (99) 5 лет назад
Это условие и задача из курса программирования на Питон.

Результат
Зачет?

75/100Оценка: 75 из 100
Нет! Задание не пройдено
Сдача задачи
75/100Оценка: 75 из 100

результаты анализатора
Test 10
Wrong answer.
"Это условие и задача из курса программирования на Питон." Я так понял, что он про условие if спрашивает. Так как шашка может ходить и влево и вправо, то обязательно надо проверять не разность, а abs(разность). поисковая система (я использовал duckduckgo, так как сижу здесь по шпионски через Тор) запрос python шашка. может ли она попасть в заданную клетку 5-я ссылка на точно такой же вопрос заданный здесь три месяца назад https://otvet.mail.ru/question/212043138 9-я - код к тому ответу https://pastebin.com/iMCWrCKs По-моему так, хотя на 100% не уверен.
Виталий ФармазоновУченик (99) 5 лет назад
Я разобрался!
if(x1 - x2) % 2 == (y1 - y2) % 2 and x2 >(тут или равно) x1 and y2 > y1:
потому что по горизонталям (y) шашка только вверх движется,
а по вертикалям (x) движется вправо и лево, то есть шашка может
остаться на той же вертикали (т. е. равно).
Остальные ответы
Пользователь mail.ru Знаток (267) 4 года назад
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if (x1 + x2) % 2 == (y1 + y2) % 2 and y2 > y1 and (x2-x1) <= (y2-y1):
print('YES')
else:
print('NO')
Тимур Лаптев Профи (803) 2 года назад
#include
#include
using namespace std;
int main() {
char s1[3], s2[3];
cin >> s1 >> s2;

int x1 = int(s1[0] - 'a');
int y1 = int(s1[1] - '0');
int x2 = int(s2[0] - 'a');
int y2 = int(s2[1] - '0');

if (((x1 + y1) % 2) == ((x2 + y2) % 2) && (y2 > y1) && (abs(x2 -x1) <= abs(y2 -y1)))
{
cout << "YES";
}
else
{
cout << "NO";
}

}
Похожие вопросы