X-PDF

Конспект занятия Greenfoot. Рефакторинг кода. Модернизация сценария. Метод проверки клавиш

Поделиться статьей

Занятие№5

Рефакторингкода. Модернизация сценария. Метод проверки клавиш.

Продолжаемнаш сценарий. Сегодня дадим занятие нашей черепахе, допустим, пусть она будетходить и кушать салат. Для этого нам нужно создать объект салата, а объект безкласса не может существовать. Каждый класс, который существует в мире долженбыть подклассом актера. Поэтому создаем подкласс актера. Дадим имя подклассу – Lettuce(салат).  И выбрать изображение.

Создадиммного таких объектов с помощью клавиши shift.Затем также выпустим черепах в мир. Запустим наш сценарий. Черепахи ходят у наспо салату, но ничего с ним не делают. Мы должны запрограммировать черепаху,чтобы она что- то делала с листьями. Обязательно сохраним наш мир.

Зайдемв код класса animal. Откроем документацию. Унас осталось еще два метода.

Метод canSee – с помощью него, я могу спросить, могу ли я видеть объект этогокласса, и он возвращает логическое значение (true/false).

Метод eat—  является методом void,это означает, что он ничего не возвращает. На самом деле это просто приказ –съешь объект этого класса.

Зайдем в редактор кода класса черепахи.Используем два этих метода и условный оператор if.В качестве параметра будет сам класс.

Запустим проект. Сохраним наш мир. У насавтоматически открылся редактор кода мира. Здесь мы видим, что мы создалиобъект салата, затем он был добавлен у нас в мир с координатами, и также, счерепахой.

                                                                         

         В итоге,то, что мы делали, называется формально – обнаружением столкновений.Обнаружение столкновений – это распознавание того, когда объекты соприкасаютсядруг с другом. У нас же черепаха касается с салатом, с помощью объекта canSee.

 

Работанад исходным кодом сценария. Улучшение качества.

Открыть редактор.Код становится длиннее, а читать его труднее. Чтобы облегчить чтение кода,давайте рассмотрим несколько простых правил:

1.     Отступы.При написании команды, утверждения.

2.     Оставлятьпустую строку после каждой команды.

Показатьплохой пример. Как не нужно писать код. Пробелы,отступы не соблюдены, в итоге он тяжело воспринимается и поддается чтению.

Если получилосьтак, что класс перепутался, то в меню редактирования есть функцияавтоматической компановки, тогда Greenfoot сам все за нас исправит.

Наданный момент, наш метод act() делает 4 вещи:

1.     Движетсявперед;

2.     Случайнымобразом поворачивает время от времени;

3.     Проверяетнаходимся ли мы на краю мира, а затем поворачивается;

4.     Пытаетсясъесть салат.

Витоге, есть 4 отдельных действия, все они закодированы в методе act().

     И каждое этодействие мы перенесем в отдельный метод. Движение оставим. Метод случайныхчисел мы уберем в отдельный метод randomTurn(случайный поворот).

И если я запущупроект, то черепаха у меня перестанет поворачиваться. Щелкнем правой кнопкоймыши, данный метод есть здесь. Но среда Greenfoot так устроена, что автоматически вызывается только метод act(), для этого нам нужно объявить метод randomTurn  в методе act(). Напишем егоназвание и параметры (отсутствие).

Точно также, мыделаем с остальными методами.

Теперь у нас методact()очень короткий, и его проще читать.

И еще, что мысделаем для улучшения нашего кода, напишем комментарии.

Представленная информация была полезной?
ДА
58.49%
НЕТ
41.51%
Проголосовало: 954

Мы должны написатькомментарий к каждому методу, сверху этого метода, вспоминаем про однострочныйи многострочный комментарий.

Комментарий – этоподсказка, расшифровка для читателя кода. Комментарий игнорируется системой java.

 

Все это мы сделалидля того, чтобы упростить чтение нашего кода. Так как, дальше код у нас будетрасти, и его будет все сложнее воспринимать. Код будет занимать много страниц,и важно разделять программу на такие модули.

 

Модернизациясценария.

Продолжим нашсценарий. Сегодня мы создадим хищника, который будет пытаться съесть нашучерепаху.

Выбираем класс Animal и создаем новый подкласс — Snake.

Выпустим несколькозмей в мир. Запустим проект, и конечно же, змеи пока ничего не делают. Зайдем висходный код Snake. Здесь пусто. Нам нужнаинструкция змее. Для этого зайдем в исходный код черепахи и скопируем весьметод act()и вставим в код змеи.

Теперь у нас змеяделает то же самое, что и черепаха.

Она перемещается,делает случайные повороты влево, вправо, поворачивает на краю мира, и съедаетсалат, когда его видит. Последнее мы изменим, она будет есть не салат, ачерепаху.

Зайдем в редакторкода Snake.И поменяем в методе tryToEatTurtle()салат на черепаху.

 

Скомпилировали изапустили проект.

Оставим положенияобъектов и сохраним мир.

 

Управлениечерепахой.

Сейчас мыпревратим наш сценарий и компьютерную, интерактивную игру, получив игровогоперсонажа, которым можно будет управлять.

Когда мы запускаемпроект, то видим, что черепаха и змеи перемещаются случайным образом, черепахапытается наткнуться на салат и съесть его, а змеи пытаются съесть черепаху. И вданный момент, у нас нет никакого контроля над нашими объектами.

Теперь черепахадолжна стать нашим игровым персонажем, которым мы будем управлять с помощьюклавиатуры, а змеи будут также беспорядочно бегать.

Зайдем в редакторкода черепахи.

Удалим два метода randomTurnturnAtEdge

 И вместо turnAtEdge()-поворота на краю, мы будем использовать метод проверки ключей – checkKeys(),мы проверим свою клавиатуру, нажимаются лиопределенные клавиши и нажимаются ли они вообще. Будем проверять нажатияклавиши на клавиатуре вправо, влево. Данный метод мы уже изучали, называется(Greenfoot.isKeyDown()). В кавычках мы можем поместить любую функциональнуюклавишу клавиатуры, смотря как она называется (a,b, F1,w),но в данный момент мы будем использовать клавиши «left»и «right».

Здесь мы, также,будем использовать оператор if.

Пропишемкомментарий к нашему методу.

Обязательнодобавим метод checkKeys()в метод act().

Скомпилируем изапустим проект.

Мы можем усложнитьили упростить игру, запустив меньше или больше змей в мир. Также, можноизменить скорость черепахи, сделать ее медленнее, а змей быстрее, изменивпараметры в методе move(). Или уменьшитьградус поворота, тогда черепаха будет медленнее поворачивать. 

Витоге, мы сделали нашу первую простую компьютерную игру.


Поделиться статьей
Автор статьи
Анастасия
Анастасия
Задать вопрос
Эксперт
Представленная информация была полезной?
ДА
58.49%
НЕТ
41.51%
Проголосовало: 954

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

ОБРАЗЦЫ ВОПРОСОВ ДЛЯ ТУРНИРА ЧГК

Поделиться статьей

Поделиться статьей(Выдержка из Чемпионата Днепропетровской области по «Что? Где? Когда?» среди юношей (09.11.2008) Редакторы: Оксана Балазанова, Александр Чижов) [Указания ведущим:


Поделиться статьей

ЛИТЕЙНЫЕ ДЕФЕКТЫ

Поделиться статьей

Поделиться статьейЛитейные дефекты — понятие относительное. Строго говоря, де­фект отливки следует рассматривать лишь как отступление от заданных требований. Например, одни


Поделиться статьей

Введение. Псковская Судная грамота – крупнейший памятник феодального права эпохи феодальной раздробленности на Руси

Поделиться статьей

Поделиться статьей1. Псковская Судная грамота – крупнейший памятник феодального права эпохи феодальной раздробленности на Руси. Специфика периода феодальной раздробленности –


Поделиться статьей

Нравственные проблемы современной биологии

Поделиться статьей

Поделиться статьейЭтические проблемы современной науки являются чрезвычайно актуальными и значимыми. В связи с экспоненциальным ростом той силы, которая попадает в


Поделиться статьей

Семейство Первоцветные — Primulaceae

Поделиться статьей

Поделиться статьейВключает 30 родов, около 1000 видов. Распространение: горные и умеренные области Северного полушария . многие виды произрастают в горах


Поделиться статьей

Вопрос 1. Понятие цены, функции и виды. Порядок ценообразования

Поделиться статьей

Поделиться статьейЦенообразование является важнейшим рычагом экономического управления. Цена как экономическая категория отражает общественно необходимые затраты на производство и реализацию туристского


Поделиться статьей

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram
Заявка
на расчет