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

Ходы коня — 2

31.03.2020, 11:31. Показов 15154. Ответов 12

Студворк — интернет-сервис помощи студентам
Ходы коня — 2

Конь находится на шахматной доске 8×8. Определите координаты всех клеток, куда можно прийти конём за два хода.

Входные данные

В двух строках входного файла заданы два числа — координаты нахождения коня. Числа во входном файле натуральные, не превосходящие 8 по значению.

Выходные данные

Выведите координаты всех клеток, в которые может переместиться конь после второго хода. Клетки выводятся в следующем порядке: вначале клетки первого ряда слева направо, далее клетки второго ряда и т.д


У меня есть код на python, координаты он выводит те же, но в неправильном порядке, кто может, подправьте пожалуйста.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
x, y = int(input()), int(input())
h = [[1, 2], [2, 1], [1, -2], [2, -1], [-1, 2], [-2, 1], [-1, -2], [-2, -1]]
nk = []
sc = []
d = [1, 2, 3, 4, 5, 6, 7, 8]
for i in h:
    if x + i[0] in d:
        if y + i[1] in d:
            nk.append([x + i[0], y + i[1]])
for i in nk:
    for j in h:
        if i[0] + j[0] in d:
            if i[1] + j[1] in d:
                sc.append([i[0] + j[0], i[1] + j[1]])
scc = []
for i in sc:
    if i not in scc:
        scc.append(i)
[print(*i) for i in scc]
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2020, 11:31
Ответы с готовыми решениями:

Ходы коня
Ход конем Дана прямоугольная доска N∗M (N строк и M столбцов). В левом верхнем углу находится шахматный конь, которого необходимо...

Ходы коня
На шахматной доске стоит конь. Отметьте положение коня на доске и все клетки, которые он бьет. Клетку, где стоит конь, отметьте английской...

Ходы коня
На шахматной доске стоит конь. Отметьте положение коня на доске и все клетки, которые он бьет. Клетку, где стоит конь, отметьте английской...

12
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
31.03.2020, 12:12
KiritoSan, А можно пример, как он должен их вывести? Просто, первый ряд имеется ввиду с точки зрения матрицы, то есть верхний или с точки зрения шахматной доски, то есть нижний?
0
2 / 2 / 0
Регистрация: 26.03.2019
Сообщений: 35
31.03.2020, 13:04  [ТС]
Да, конечно:
Ввод:
5
7

Вывод:
3 3
5 3
7 3
2 4
4 4
6 4
8 4
1 5
5 5
2 6
4 6
6 6
8 6
1 7
3 7
5 7
7 7
2 8
4 8



Ввод:
7
3

Вывод:
3 1
7 1
4 2
6 2
8 2
3 3
5 3
7 3
4 4
6 4
8 4
3 5
7 5
4 6
6 6
8 6
5 7
7 7
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
31.03.2020, 13:45
Добавьте эту строку перед выводом:
Python
1
scc.sort(key=lambda x: (x[1], x[0]))
Добавлено через 17 минут
Цитата Сообщение от KiritoSan Посмотреть сообщение
Да, конечно:
Ввод:
5
7
Вывод:
3 3
5 3
7 3
2 4
4 4
6 4
8 4
1 5
5 5
2 6
4 6
6 6
8 6
1 7
3 7
5 7
7 7
2 8
4 8
Это точно весь вывод? Там больше нет 6 8 и 8 8?
1
2 / 2 / 0
Регистрация: 26.03.2019
Сообщений: 35
31.03.2020, 13:48  [ТС]
да, не все выделилось:

Вот полностью весь вывод:
3 3
5 3
7 3
2 4
4 4
6 4
8 4
1 5
5 5
2 6
4 6
6 6
8 6
1 7
3 7
5 7
7 7
2 8
4 8
6 8
8 8
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
31.03.2020, 13:49
вот вам в один ход, на два надеюсь переделать труда не возникнет:
Python
1
2
3
4
5
x = 7; y = 3
for j in range(1, 9):
    for i in range(1, 9):
        if abs((x-i)*(y-j)) == 2:
            print(i, j)
2
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
31.03.2020, 13:58
Цитата Сообщение от eaa Посмотреть сообщение
вот вам в один ход, на два надеюсь переделать труда не возникнет:
Python
1
2
3
4
5
x = 7; y = 3
for j in range(1, 9):
    for i in range(1, 9):
        if abs((x-i)*(y-j)) == 2:
            print(i, j)
PEP 8
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
31.03.2020, 14:04
ну нажмите кнопочку в редакторе. или за вас это сделать? совсем уже обленились.
0
2 / 2 / 0
Регистрация: 26.03.2019
Сообщений: 35
31.03.2020, 14:15  [ТС]
Вставил строку перед выводом, всё заработало, Спасибо!
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
31.03.2020, 14:16
Цитата Сообщение от eaa Посмотреть сообщение
ну нажмите кнопочку в редакторе. или за вас это сделать? совсем уже обленились.
Обленились??? Вы мне говорите о нажатии на кнопочку для грамотного редактирования кода и я ещё и обленился)))
Грамотный код нужно писать автоматически, а не ждать, пока его за вас исправит IDE. И кто ещё тут обленился.
0
4 / 3 / 1
Регистрация: 01.04.2020
Сообщений: 7
02.04.2020, 13:11
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
def knightsTour(x0, y0, done, size=5):
    #создаем шахматную доску в виде 2го списка
    h = [[0 for j in xrange(size)] for i in xrange(size)]
    #начальная координата(1го хода)
    h[x0][y0] = 1
   
    #Возможные ходы
    dx = [2, 1, -1, -2, -2, -1, 1, 2]
    dy = [1, 2, 2, 1, -1, -2, -2, -1]
 
    def CanBeDone(u, v, i):
        h[u][v] = i
        done = tryNextMove(u, v, i)
        if not done:
            h[u][v] = 0
        return done
   
    def tryNextMove(x,y, i):
       
        #eos - показывает все ли варианты возможных 8ми ходов мы рассмотрели
        #done - показывает удачна ли данная ветка решения
        #k - порядковый номер рассмотренной попытки из 8 допустимых
        env = {'done': False, 'eos': False, 'u': x, 'v': y, 'k': -1}
 
        def next():
            x = env['u']
            y = env['v']
            while env['k'] < 8:
                env['k'] +=1;
                if env['k'] < 8:
                    env['u'] = x + dx[env['k']]
                    env['v'] = y + dy[env['k']]
                if (env['u'] >= 0 and env['u']<size) and (env['v']>=0 and env['v']<size) and h[env['u']][env['v']]==0:
                    break
            env['eos'] = (env['k']==8)
 
        if i < size**2:#если доска не заполнена
            next()
            while not env['eos'] and not CanBeDone(env['u'], env['v'], i+1):
                next()
            done = not env['eos']
        else:
            done = True
        return done
 
    tryNextMove(x0, y0, 1)
    print h
Добавлено через 9 минут
Пишите в телегу @Radio777GD у меня есть сто процентов рабочие решение на задачу. Сириус принял.
0
14 / 14 / 0
Регистрация: 03.04.2020
Сообщений: 16
03.04.2020, 19:30
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
xq = int(input())
yq = int(input())
e = []
for y in range(1, 9):
    for x in range(1, 9):
        if abs((xq-x)*(yq-y)) == 2:
            e.append([x, y])
for y in range(1, 9):
    for x in range(1, 9):
        for i in e:
            if abs((i[0] - x) * (i[1] - y)) == 2:
                print(x, y)
                break
1
0 / 0 / 0
Регистрация: 07.10.2021
Сообщений: 1
15.10.2021, 21:27
AlexandrGD, не находит в телеграмме
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2021, 21:27
Помогаю со студенческими работами здесь

Ходы коня
В левом верхнем углу прямоугольной доски NxM находится шахматный конь. Перемещаться по доске он может только двумя способами: на две клетки...

Ходы коня
На шахматной доске стоит конь. Отметьте положение коня на доске и все клетки, которые он бьет. Клетку, где стоит конь, отметьте английской...

Задача: Ходы коня
Помогите решить задачу! Условия следующие: На шахматной доске 8×8 стоит конь. Напишите программу, которая отмечает положение коня на...

Ходы Коня -2
Ходы коня — 2 Конь находится на шахматной доске 8×8. Определите координаты всех клеток, куда можно прийти конём за два хода. ...

Ходы коня
На шахматной доске стоит конь. Отметьте положение коня на доске и все клетки, которые он бьет. Клетку, где стоит конь, отметьте английской...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 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
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru