Top.Mail.Ru
Ответы

Домашняя работа «Новые возможности условного оператора» (Python)

ПОМОГИТЕ!!!

По дате
По рейтингу
Аватар пользователя
Профи
1мес

Это Палестина 🇵🇸 🇵🇸 🇵🇸

Кота зовут Камила.

Вы Палестину увожайте,

Кота не обижайте.

Все террористы и хохлы,

Цахаловцы и алкаши,

Побойтесь вы Камилу

И увожайте Палестину!

Аватар пользователя
Ученик
1мес

Задача №2: Найти закрашенную клетку

​Условие: Робот находится где-то в прямоугольнике. Одна клетка рядом с исходной закрашена. Робот должен оказаться в ней.

​Логика: Нужно проверить все четыре направления вокруг робота. Если соседняя клетка закрашена, нужно в неё перейти.

if not free_from_up(): # Если сверху стена, проверять там не будем, но по условию клетка точно рядом

pass

# Проверяем каждое направление

move_up()

if cell_is_filled():

pass # Мы уже на месте

else:

move_down() # Возвращаемся в центр

move_down()

if cell_is_filled():

pass

else:

move_up() # Возвращаемся в центр

move_left()

if cell_is_filled():

pass

else:

move_right() # Возвращаемся в центр

move_right() # Идем в последнюю возможную клетку

Задача №3: Закрасить клетку между стен

Условие: Если у клетки слева и у клетки справа есть стена сверху, он должен закрасить исходную клетку.

Логика: Роботу нужно "заглянуть" влево и вправо, проверить наличие стены сверху в тех клетках, и если оба условия верны — закрасить текущую.

# 1. Проверяем клетку слева

move_left()

condition_left = wall_from_up()

move_right() # Вернулись

# 2. Проверяем клетку справа

move_right()

condition_right = wall_from_up()

move_left() # Вернулись

# 3. Если обе стены на месте — красим

if condition_left and condition_right:

fill_cell()

Задача №4: Обойти стенку

​Условие: С одной стороны от робота есть стенка шириной в 1 клетку. Робот должен обойти её и встать с другой стороны.

​Логика: Сначала нужно определить, с какой именно стороны стена, а затем сделать "крюк".

if wall_from_up():

move_left()

move_up()

move_up()

move_right()

elif wall_from_down():

move_left()

move_down()

move_down()

move_right()

elif wall_from_left():

move_up()

move_left()

move_left()

move_down()

elif wall_from_right():

move_up()

move_right()

move_right()

move_down()

Советы по синтаксису:

​Не забывай про отступы (4 пробела или Tab) после if и else.

​Если в задаче №3 тебе нельзя использовать переменные (как condition_left), можно написать один длинный if:

if wall_from_left_side_something... (но обычно в этой среде проще переместиться, проверить и вернуться).

Аватар пользователя
Ученик
1мес

Спасибо!!!



Видео по теме