პასუხები#
2.1 ჩაიბარე ამანათი#
ერთ-ერთი შესაძლო მარშრუტი:
def main():
# გასვლა
move()
move()
turn_right()
move()
turn_left()
move()
# აღება და მობრუნება
pick()
turn_around()
# დაბრუნება პოზიციაზე
move()
move()
move()
turn_right()
move()
turn_right()
def turn_right():
turn_left()
turn_left()
turn_left()
def turn_around():
turn_left()
turn_left()
2.2 ააშენე სკოლები#
def main():
# ჩაიაროს რუკა და შემხვედრ აგურზე დააშენოს 2x3 ზომის სკოლა
while front_is_clear():
if bricks_present():
build_school()
move()
# ალგორითმი სკოლის ასაშნებელად
def build_school():
# მარცხენა ნაწილი
turn_left()
move()
put()
move()
put()
# მარჯვენა ნაწილი
turn_right()
move()
put()
turn_right()
move()
put()
move()
put()
turn_left()
def turn_right():
turn_left()
turn_left()
turn_left()
2.3 ხიდის შეკეთება#
def main():
for i in range(3):
fix_column()
move_to_next_column()
# Fence-post პრობლემა
fix_column()
def fix_column():
turn_left()
# აყვეს სვეტს ბოლომდე და დაალაგოს გამოტოვებული აგურები
while front_is_clear():
if no_bricks_present():
put()
move()
# Fence-post პრობლემა
if no_bricks_present():
put()
# მობრუნება და ქვემოთ დაბრუნება
turn_around()
while front_is_clear():
move()
turn_left()
def move_to_next_column():
for i in range(4):
move()
def turn_around():
turn_left()
turn_left()
2.4 არჩევნები#
def main():
# ჩაიაროს დერეფანი და აკრიფოს მოპირდაპირე ყუთებიდან
while front_is_clear():
collect_sides()
move()
# Fence-post პრობლემა
collect_sides()
# დააწყოს შეგროვილი ბიულეტინები
put_all()
# დაბრუნდეს უკან
return_back()
def return_back():
turn_around()
while front_is_clear():
move()
turn_around()
def put_all():
while bricks_in_bag():
put()
def collect_sides():
# ზედა ყუთის აგროვება
turn_left()
move()
collect_box()
turn_around()
move()
# ქვედა ყუთის აგროვება
move()
collect_box()
# დაბრუნება პოზიციაში
turn_around()
move()
turn_right()
def collect_box():
while bricks_present():
pick()
def turn_around():
turn_left()
turn_left()
def turn_right():
turn_left()
turn_left()
turn_left()
2.5 გააორმაგე აგურები#
def main():
move()
# თითო აგურზე დებს ორ აგურს მარჯვნივ, ასე თვლის გარეშე შევძლებთ გაორმაგებას
while bricks_present():
# აიღე ერთი
pick()
# წადი და დადე ორი ცალი თითო აღებულზე
move()
put()
put()
# დაბრუნდი უკან ციკლის დასატრიალებლად
turn_around()
move()
turn_around()
# საწყის პოზიციაზე დაბრუნება
turn_around()
move()
turn_around()
def turn_around():
turn_left()
turn_left()