Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/47: Рейтинг темы: голосов - 47, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 19

Шахматная доска: король

06.04.2021, 15:13. Показов 9679. Ответов 9

Студворк — интернет-сервис помощи студентам
Петя очень любит играть в шахматы. Он просит создать программу, которая поможет ему рассчитывать передвижение шахматной фигуры «король». Данная фигура ходит по горизонтали, вертикали или диагонали на одну клетку.
Программа получает на вход четыре числа от 1 до 8 каждое. Первые два числа — задают координаты местонахождения короля в данный момент (номер строки и столбца), Два других числа — координаты клетки, в которую необходимо переместить фигуру (гарантируется, что клетки не совпадают). Программа должна вывести "Да", если из первой клетки ходом короля можно попасть во вторую, иначе — "Нет".

Бонус! Реши задачу при условии, что пользователь может ввести одинаковые клетки. В таком случае программа должна выводить "Нет".

Помогите, пожалуйста
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.04.2021, 15:13
Ответы с готовыми решениями:

Шахматная доска
На Питоне!!!!!!!!!!!!!!!!!!!!! Даны два числа n и m. Создайте двумерный массив размером n×m и заполните его символами 1 и 0 в шахматном...

Шахматная доска
Добрый день! Помогите новичку разобраться в данной задачи, непонятно не с чего начать, не как её реализовать: На вход подаётся строка...

Шахматная доска
Hallo, всем ползователям форума. Сори за, возможно, тупой вопрос, но у меня такая проблема: Я хочу написать простой код, который...

9
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
06.04.2021, 15:45
kapurdok,
Python
1
2
3
4
5
x1, y1 = map(int, input().split())
x2, y2 = map(int, input().split())
x = abs(x1-x2)
y = abs(y1-y2)
print('Да' if x+y == 1 or x*y == 1 else 'Нет')
2
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 19
07.04.2021, 16:53  [ТС]
К сожалению, выдаёт ошибку. Можете, пожалуйста, попробовать сделать используя "if/else/elif/and/or/not и математические знаки", желательно, без "split/abs и т.п."?? Буду очень благодарен
0
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
07.04.2021, 16:58
kapurdok,
Python
1
2
3
4
5
x1,y1,x2,y2=input().split(' ') #a1-a2> 1 1 1 2
if abs(x1-x2)==1 and abs(y1-y2)==1: #валидный ход короля есть модуль разности координат равный еденице
  print('ok')
else:
  print('invalid')
1
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
07.04.2021, 17:02
Python
1
2
3
4
5
6
7
8
9
10
11
x1, y1, x2, y2 = int(input()), int(input()), int(input()), int(input())
xp = x1 - x2
yp = y1 - y2
if xp < 0:
    xp = -xp
if yp < 0:
    yp = -yp
if xp <= 1 and yp <= 1:
    print('Да')
else:
    print('Нет')
может так?
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
07.04.2021, 17:16
Лучший ответ Сообщение было отмечено kapurdok как решение

Решение

user-ganz, при x1, y1 = 3, 3 варианты x2, y2:
2, 2
2, 3
2, 4
3, 4
4, 4
4, 3
4, 2
3, 2
Поэтому вместо
Python
1
if abs(x1-x2)==1 and abs(y1-y2)==1:
нужно или
Python
1
2
3
if (abs(x1-x2)==1 or abs(x1-x2)==0)\
 and (abs(y1-y2)==1 or abs(y1-y2)==0)\
and abs(x1-x2) + abs(y1-y2) != 0:
или:
Python
1
2
if abs(x1-x2)<2 and abs(y1-y2)<2\
 and abs(x1-x2)+abs(y1-y2) != 0:
1
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
07.04.2021, 17:20
Gdez, да верно, мало подумал
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
07.04.2021, 17:26
kapurdok, ошибка ; похоже нужно вместо
Python
1
2
x1, y1 = map(int, input().split())
x2, y2 = map(int, input().split())
Так
Python
1
x1, y1, x2, y2 = map(int, input().split())
Все четыре числа на одной строчке
Или
Python
1
2
3
4
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
На разных строчках
1
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 19
09.04.2021, 14:45  [ТС]
Все написанные варианты прошли, спасибо большое!
0
1 / 1 / 0
Регистрация: 20.12.2020
Сообщений: 24
09.04.2021, 21:25
Python
1
2
3
4
5
6
7
8
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if abs(x1 - x2) <= 1 and abs(y1 - y2) <= 1:
    print('YES')
else:
    print('NO')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2021, 21:25
Помогаю со студенческими работами здесь

Шахматная доска
https://contest.yandex.ru/testsys/statement-image?imageId=f48a4dbfd6ebc09b1a5e104dfb1b9cff05111e0b469ef02c36c3ad1c37b5558f На шахматной...

Задача Шахматная доска
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. По введенным координатам двух полей (k,l) и...

Шахматная доска - 2, задача по программированию
Мой код r = open('input.txt', 'r') w = open('output.txt', 'w') input_val = r.readline().split(' ') m = int(input_val) n =...

Шахматная доска состоит из n×m клеток, покрашенных в чёрный и белый цвет в шахматном порядке
Шахматная доска Шахматная доска состоит из n×m клеток, покрашенных в чёрный и белый цвет в шахматном порядке. При этом клетка в левом...

Шахматная доска
Добрый вечер! Есть задача: Напишите функцию board(num, size), создающую графический файл в формате PNG с изображением квадратного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru