Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 22, 2020 14:12:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Sevastian
Реализуйте элементарный алгоритм выхода из любого лабиринта - правило одной руки - и вы решите сразу все подобные задачи



Офлайн

#2 Янв. 22, 2020 15:40:40

Sevastian
Зарегистрирован: 2020-01-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

FishHook
SevastianРеализуйте элементарный алгоритм выхода из любого лабиринта - правило одной руки - и вы решите сразу все подобные задачи
правило это работает только когда мы заходим в лабиринт с какой то заданной точки, а по заданию робот уже в лабиринте и выход есть, знаем что он сверху но не знаем где

Отредактировано Sevastian (Янв. 22, 2020 15:41:04)

Офлайн

#3 Янв. 22, 2020 16:00:21

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Sevastian
а как правильно с задачей 18 справиться?

Задача

цикл пока справа_нет_стены выполнять
шагнуть вправо
конец цикла
цикл пока слева_нет_стены выполнять
если сверху_нет_стены то
выйти из цикла
конец если
шагнуть влево
конец цикла
цикл пока сверху_нет_стены выполнять
шагнуть вверх
конец цикла
цикл пока слева_нет_стены выполнять
шагнуть влево
конец цикла

[guest@localhost pyrob]$ python3 task_18.py 
INFO:pyrob:Starting task task_8_28
INFO:pyrob:Task task_8_28 finished: +
INFO:pyrob:Total: 1/1
[guest@localhost pyrob]$



Офлайн

#4 Янв. 22, 2020 16:31:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Sevastian
А если хорошо подумать, то всё прекрасно работает.
Вот так будет работать метод правой руки на сложной для вас задаче №18.



Офлайн

#5 Янв. 23, 2020 03:50:14

Sevastian
Зарегистрирован: 2020-01-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

py.user.next
не работает в случае если выход находится сразу над роботом, как обойти?

Офлайн

#6 Янв. 23, 2020 07:14:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Sevastian
не работает в случае если выход находится сразу над роботом, как обойти?
Чего не работает? Скидывай код сюда.



Офлайн

#7 Фев. 8, 2020 11:32:42

DevilDemonn
Зарегистрирован: 2020-02-08
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Увидел, тут люди скидывали свои варианты решения Задача №30: task_9_3
Решил поделиться своим

 from pyrob.api import *
@task(delay=0.15)
def task_9_3():
    # Check size
    x = 0
    while not wall_is_on_the_right():
        move_right()
        x += 1
    else:
        move_left(x)
    ############
    base = x
    while x > 1:
        for i in range (x):
            move_right()
            if not i == x-1:
                fill_cell()
        for i in range (x):
            move_down()
            if not i == x-1:
                fill_cell()
        for i in range (x):
            move_left()
            if not i == x-1:
                fill_cell()
        for i in range (x):
            move_up()
            if not i == x-1:
                fill_cell()
        move_down()
        move_right()
        x -= 2
    else:
        move_down(int(base/2))
        move_left(int(base/2))
if __name__ == '__main__':
    run_tasks()

Офлайн

#8 Фев. 13, 2020 13:05:38

SabreFencing
Зарегистрирован: 2020-02-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Здравствуйте! не могу решить задачу, застрял https://mipt-cs.github.io/python3-2017-2018/labs/lab2.html#o13-task-8-10 (Задача №13: task_8_10)

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

while wall_is_beneath() and wall_is_above():
move_right()
if wall_is_above():
move_down()
fill_cell()
move_up()
elif wall_is_beneath():
move_up()
fill_cell()
move_down()
elif not wall_is_beneath() and not wall_is_above():
move_down()
fill_cell()
move_up(2)
fill_cell()
move_down()
while not wall_is_on_the_right():
move_right()
if wall_is_beneath() and wall_is_above():
move_right()
elif wall_is_above():
move_down()
fill_cell()
move_up()
elif wall_is_beneath():
move_up()
fill_cell()
move_down()
elif not wall_is_beneath() and not wall_is_above():
move_down()
fill_cell()
move_up(2)
fill_cell()
move_down()


Большое спасибо!

Офлайн

#9 Фев. 13, 2020 13:41:13

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

SabreFencing
Здравствуйте! не могу решить задачу
SabreFencing
Задача №13: task_8_10
Здесь делал.



Офлайн

#10 Фев. 13, 2020 13:51:41

SabreFencing
Зарегистрирован: 2020-02-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Большое вам спасибо!!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version