Найти - Пользователи
Полная версия: Не могу решить 19 задачу.
Начало » Центр помощи » Не могу решить 19 задачу.
1
EugeneDemonSpeed666
http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html
 while not wall_is_on_the_right():
		move_right()
	while not wall_is_above():
		move_up()
	while not wall_is_on_the_left():
		move_left()
	if not wall_is_on_the_right():
		while not wall_is_on_the_left():
			move_left()
		while not wall_is_above():
			move_up()
PEHDOM
пока нет стены слева:
идем влево
если сверху нет стены:
пока сверху нет стены:
идем вверх
иначе:
пока нет стены справа:
идем вправо
если сверху нет стены:
пока сверху нет стены:
идем вверх
пока слева нет стены:
идем влево
иначе:
грузинская шутка- выхода нет
py.user.next
Когда алгоритм делаешь, запиши его сначала псевдокодом. Псевдокод не требует соблюдения синтаксиса, поэтому на нём алгоритм проще записывать и его проще менять, если он неправильный в плане алгоритма. Когда на псевдокоде правильный алгоритм будет записан, тогда уже можно и на питон этот псевдокод перевести.

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

Ещё эти части алгоритма написаны раздельно, хотя на первый взгляд их там можно соединить в одну конструкцию. Это разделение делается для того, чтобы каждую часть можно было спрятать внутри своей процедуры, не зависящей от других процедур.
EugeneDemonSpeed666
PEHDOM
py.user.next
Спасибо )))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB