Форум сайта python.su
py.user.nextЗдравствуйте можете объяснить логику ? решения. на 30 задаче (task_9_3)этой) застрял. не могу понять никак.. читаю ваш код но не могу понять(ход и действия кода) как это вы закрашиваете поле «треугольниками».
[/code#!/usr/bin/python3 from pyrob.api import * def draw_cycle(side_length): i = 0 while i < side_length - 1: if i > 0: fill_cell() move_up() else: move_up() i += 1 i = 0 while i < side_length - 1: if i > 0: fill_cell() move_right() else: move_right() i += 1 i = 0 while i < side_length - 1: if i > 0: fill_cell() move_down() else: move_down() i += 1 i = 0 while i < side_length - 1: if i > 0: fill_cell() move_left() else: move_left() i += 1 @task(delay=0.05) def task_9_3(): side_length = 1 while not wall_is_beneath(): move_down() side_length += 1 while side_length > 1: draw_cycle(side_length) move_right() move_up() side_length -= 2 while not wall_is_beneath(): move_down() while not wall_is_on_the_left(): move_left() if __name__ == '__main__': run_tasks() =================================================================== def draw_cycle(side_length): for move_func in (move_up, move_right, move_down, move_left): for i in range(side_length - 1): if i > 0: fill_cell() move_func()]
Отредактировано pokemon (Сен. 11, 2022 18:44:36)
Офлайн
pokemon
Здравствуйте можете объяснить логику ? решения. на 30 задаче (task_9_3)этой) застрял. не могу понять никак.. читаю ваш код но не могу понять(ход и действия кода) как это вы закрашиваете поле «треугольниками».
Офлайн
Всем доброго времени суток
Отредактировано Vangeli (Апрель 5, 2023 22:49:14)
Офлайн
Всем доброго времени суток
Решил решить какую-то часть задач по роботу с помощью флагов по наводке человека из форума. Решил 8,9,11,12, но ни как не могу решить с помощью флагов №10 task_8_3. Буду благодарен, если кто-то сможет объяснить логику
from pyrob.api import * @task def task_8_3(): x = True while x==True: if wall_is_above() or wall_is_beneath()==False: fill_cell() if wall_is_on_the_right()==False: move_rights() else: x = False if __name__ == '__main__': run_tasks()
from pyrob.api import * @task def task_8_3(): pass for i in range(1): while not wall_is_on_the_right(): move_right() if wall_is_above() or wall_is_beneath(): fill_cell() while not wall_is_on_the_left(): move_left() print(not wall_is_on_the_left()) if wall_is_above() or wall_is_beneath(): fill_cell() while not wall_is_on_the_right(): move_right() if __name__ == '__main__': run_tasks()
Отредактировано Vangeli (Апрель 5, 2023 22:52:27)
Офлайн
py.user.next#!/usr/bin/python3
from pyrob.api import * @task def task_8_27(): pass for i in range(1): while not cell_is_filled(): move_up() if cell_is_filled(): move_left() else: if not cell_is_filled(): move_right(2) if __name__ == '__main__': run_tasks()
Отредактировано Vangeli (Апрель 6, 2023 02:27:00)
Офлайн
VangeliЗдесь делал эту задачу.
но ни как не могу решить с помощью флагов №10 task_8_3
VangeliЗдесь делал эту задачу.
Почему-то не сработало цитирование, в общем, это к обсуждению 17-й задачи (tasl_8_27)
сделать первое
если икс равно трём, то
сделать второе
иначе
сделать третье
сделать четвёртое
do_first_action() if x == 3: do_second_action() else: do_third_action() do_fourth_action()
Отредактировано py.user.next (Апрель 6, 2023 03:05:16)
Офлайн
Благодарю за ответ!
За блок-схемы отдельное спасибо, изучу надлежащим образом
Решение, которое ты предлагал для 17 задачи так никак и не сработало у меня, поэтому я сделал своё всё-таки. Я понял, почему у меня не срабатывало “иначе”. Напишу, может кому-то когда-то будет полезно:
ИНАЧЕ должно наступать при не выполнении условий ЕСЛИ (банально, не правда ли?). А фактически, из-за первого цикла на подъем вверх - мы всегда попадали на закрашенный квадратик, поэтому ИНАЧЕ там не срабатывало. Но выйти из этого квадратика в силу генерации уровня мы могли, поэтому и нужно было задать второе условие
@task def task_8_27(): pass for i in range(1): while not cell_is_filled(): move_up() if cell_is_filled(): move_left() if not cell_is_filled(): move_right(2) if __name__ == '__main__': run_tasks()
Офлайн
Vangeli
Решение, которое ты предлагал для 17 задачи так никак и не сработало у меня
>>> from pyrob.api import * >>> >>> >>> @task ... def task_8_27(): ... while not cell_is_filled(): ... move_up() ... move_right() ... if not cell_is_filled(): ... move_left() ... move_left() ... >>> >>> if __name__ == '__main__': ... run_tasks() ... INFO:pyrob:Starting task task_8_27 INFO:pyrob:Task task_8_27 finished: + INFO:pyrob:Total: 1/1 True >>>
Отредактировано py.user.next (Апрель 6, 2023 13:26:35)
Офлайн
Хочу поделиться своим видением решения задачи №20 (task_4_3)
Заранее оговорюсь, что не смог найти решения для этой задачи, которое могло бы масштабироваться. Мне видится, что его здесь нет, если будут изменяться отступы закрашенных клеток от стен с любой стороны или же будет плавающая точка финала
#!/usr/bin/python3 from pyrob.api import * @task(delay=0.001) def task_4_3(): count = 0 while not wall_is_beneath(): move_down() count +=1 print(count) move_up(count) while not count ==2: while not wall_is_on_the_right(): move_right() if not wall_is_on_the_right(): fill_cell() move_down() count -=1 print(count) while not wall_is_on_the_left(): move_left() if not wall_is_on_the_left(): fill_cell() else: if wall_is_on_the_left(): move_down() count -= 1 print(count) if count <= 2: break move_right() if __name__ == '__main__': run_tasks() [s][/s]
Офлайн
VangeliЗдесь делал эту задачу.
Заранее оговорюсь, что не смог найти решения для этой задачи, которое могло бы масштабироваться.
VangeliДа ты усложняешь просто задачу. Понимаешь, там заданы рамки для каждой группы задач “вот сейчас типа используем циклы в условиях” или там “сейчас используем флаги” или там “а сейчас используем подпрограммы” и так далее. И вот надо в этих рамках действовать. Тогда у тебя будут прокачиваться навыки элементарные.
Мне видится, что его здесь нет, если будут изменяться отступы закрашенных клеток от стен с любой стороны или же будет плавающая точка финала
VangeliОно здесь есть, только ты его не видишь, так как у тебя отсутствует опыт программирования чего-то более сложного. Этот курс - это задачки для школьников. Вот и действуй в его рамках, как школьник. Не надо лезть в дебри, всё равно не вывезешь. Подрастёшь - полезешь дальше.
Заранее оговорюсь, что не смог найти решения для этой задачи, которое могло бы масштабироваться. Мне видится, что его здесь нет
Отредактировано py.user.next (Апрель 7, 2023 03:11:47)
Офлайн