Описание классов и тексты методов задачи "Об обезьяне и бананах" (Приложение), страница 2

координаты

        "Выдает двумерную координату обезьяны (в виде объекта класса Точка)"

  ^координаты

координаты: экзТочка

        "Задает двумерную координату обезьяны (в виде объекта класса Точка)"

  координаты:= экзТочка.

наЯщике

    "Выдает значение 'истина' или 'ложь'  в зависимости от состояния обезьяны "

 ^наЯщике

наЯщике: экзЛогический

        "Устанавливает состояние обезьяны"

  наЯщике:= экзЛогический.

начальноеСостояние

        "Устанавливает начальное состояние обезьяны"

    |строка1 строка2 строка3|

сам координаты:

  (Суфлер подсказка: 'Задайте координаты обезьяны'

                 выражениеПоУмолчанию:  '5 @ 10').

строка1:= Суфлер подсказка: 'Обезьяна на ящике? (да/нет)'

                                поУмолчанию:  ' '.

(строка1 = 'да')

    еслиИстина: [сам наЯщике: истина. строка2:= 'на ящике']

    еслиЛожь: [сам наЯщике: ложь. строка2:= 'на полу'].

строка1:= Суфлер подсказка: 'Обезьяна держит бананы?'

                                поУмолчанию:  ' '.

(строка1 = 'да')

     еслиИстина: [сам держитБананы: истина.

                             строка3:= 'держит бананы']

     еслиЛожь: [сам держитБананы: ложь.

                          строка3:= 'бананов в руках нет'].

сам ответ: 'Начальное состояние:';

       ответ: ' Обезьяна находится ', строка2;

       ответ: ' в точке ', (сам координаты) печатноеИмя;      

       ответ: ' ', строка3

ответ: экзСтрока

    "Выводит заданную строку в окно системной информации"

СистемнаяИнформация символВК; показать: экзСтрока

подвинутьЯщикВ: экзТочка

    "Обезьяна двигает ящик в заданную точку"

(сам координаты = Ящик координаты)

     еслиЛожь: [сам ответ: ' Обезьяна не подошла к ящику!']

     еслиИстина:[сам наЯщике

              еслиИстина:[сам ответ: ' Обезьяна сидит на ящике!']

             еслиЛожь:[сам координаты: экзТочка.

                                 Ящик передвинутьсяВ: экзТочка.

                   сам ответ: ' Обезьяна передвинула ящик в  точку ',

                                                  (сам координаты) печатноеИмя]

                        ]

подвинутьЯщикКБананам

   "Обезьяна двигает ящик к бананам"

  сам подвинутьЯщикВ: СвязкаБананов координаты

подойтиКЯщику

   "Обезьяна подходит к ящику"

 (сам координаты = Ящик координаты)

      еслиИстина: [сам наЯщике

                                  еслиИстина:[сам ответ: ' Обезьяна сидит  на ящике!']

                                  еслиЛожь:[сам ответ: ' Обезьяна уже у ящика!']

                             ]

      еслиЛожь:[сам координаты: Ящик координаты.

                      сам ответ: ' Обезьяна подошла к ящику в точку ',

                                                  (сам координаты) печатноеИмя]

слезтьСЯщика

    "Обезьяна слезает с ящика"

сам наЯщике

    еслиЛожь: [сам ответ: ' Обезьяна не на ящике!']

    еслиИстина: [сам наЯщике: ложь.