Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2023 09:04:52

Vangeli
Зарегистрирован: 2023-04-05
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

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


Спасибо за обратную связь, я сделал счётчиками действительно потому, что не нашёл другого удобного способа

но хотелось бы пояснить свой тезисы, ты пишешь:

py.user.next
Оно здесь есть, только ты его не видишь,

но тем ни менее твой код заканчивается так:

шагнуть вправо
шагнуть вниз
конец цикла

И когда я писал, что не смог найти закономерность для масштабирования, то это было только о том, что не смог в изначальный скрипт, ровно как и в твоём коде, заложить точку выхода. У нас обоих так или иначе делается дополнительное действие после основного алгоритма

Но, ты безусловно прав о формах и методах обучения. Но я ведь прихожу к подобному решению только потому что не вижу другого, и снова, как ты правильно заметил, из-за отсутствия опыта. Но тем ни менее, все эти хитрые сложные алгоритмы - не из головы, а результате чтения книжек М. Лутца

Офлайн

#2 Апрель 7, 2023 22:50:20

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

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

Vangeli
но тем ни менее твой код заканчивается так:
шагнуть вправо
шагнуть вниз
конец цикла
Ну, там ещё один выход и цикла есть.

Здесь делал эту задачу.

Вот этот фрагмент
цикл выполнять
шагнуть вниз
если снизу_нет_стены то
шагнуть вверх
иначе
шагнуть вверх
выход из цикла
конец если
Он как раз и определяет, нужно ли остановиться.

  
>>> from pyrob.api import *
>>> 
>>> 
>>> @task(delay=0.05)
... def task_4_3():
...     move_right()
...     while True:
...         move_down()
...         if not wall_is_beneath():
...             move_up()
...         else:
...             move_up()
...             break
...         while not wall_is_on_the_right():
...             fill_cell()
...             move_right()
...         while not wall_is_on_the_left():
...             move_left()
...         move_right()
...         move_down()
...     
... 
>>> if __name__ == '__main__':
...     run_tasks()
... 
INFO:pyrob:Starting task task_4_3
INFO:pyrob:Task task_4_3 finished: +
INFO:pyrob:Total: 1/1
True
>>>

Vangeli
И когда я писал, что не смог найти закономерность для масштабирования, то это было только о том, что не смог в изначальный скрипт, ровно как и в твоём коде, заложить точку выхода. У нас обоих так или иначе делается дополнительное действие после основного алгоритма
А с чего ты взял-то, что там должна быть точка выхода? Там же человек придумывал эту задачу, и он её специально придумал так, чтобы точкой выхода были два последних ряда незакрашенных во всём поле. Дело в том, что клетки, которые нужно закрасить, никак не определяются исполнителем, такой операции у него нет “проверь, является ли клетка необходимой для закрашивания”. Он может только проверить ещё не закрашенную клетку и уже закрашенную клетку. Поэтому никакого другого способа, кроме как по наличию стены, определить конец закрашивания невозможно. Подумай сам: как ты без участия нижней стены определишь там конец закрашенного блока? Никак.



Отредактировано py.user.next (Апрель 7, 2023 23:13:27)

Офлайн

#3 Сен. 24, 2024 19:37:12

benchase
Зарегистрирован: 2024-02-24
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

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

This graphic artist “Robot” is such a creative concept! I love how it combines technology with art. It's amazing to see how Python can be used to bring ideas like this to life. Can't wait to explore more about creating graphics and animations using code! Anyone have tips for beginners?
____ _________________________

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version