Помощь в учёбе, очень быстро...
Работаем вместе до победы

Обновим состояние idle

РефератПомощь в написанииУзнать стоимостьмоей работы

Private function pursuePuck () :void { } }. Else if (distance (this, aPuck) < 150) {. Private function stealPuck () :void { }. Private function attack () :void { }. MBrain. pushState (pursuePuck); } }. Private function idle () :void {. MBrain. pushState (stealPuck); }. If (getPuckOwner () ≠ null) {. If (doesMyTeamHaveThePuck ()) {. Var aPuck: Puck = getPuck (); MBrain. pushState (attack); If… Читать ещё >

Обновим состояние idle (реферат, курсовая, диплом, контрольная)

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

На изображении ниже вы можете наблюдать переходные состояния, в которые будут попадать игроки из idle:

Если команда спортсмена имеет при себе шайбу, то нужно переходить к атаке. Если же шайба у противников, то нужно переходить к состоянию stealPuck. В случае, когда шайба бесхозная и игрок находиться достаточно близко к ней, он переходит к состоянию pursuePuck. Вот и вся логика. А теперь приведем код:

class Athlete {.

private function idle () :void {.

var aPuck: Puck = getPuck ();

stopAndlookAt (aPuck);

// это простой хак, нужен для тестирования ИИ.

if (mStandStill) return;

// есть ли у шайбы владелец?

if (getPuckOwner () ≠ null) {.

// да, есть!

mBrain.popState ();

if (doesMyTeamHaveThePuck ()) {.

// шайба у моей команды, время атаковать!

mBrain.pushState (attack);

} else {.

// шайба у соперников, надо ее отобрать.

mBrain.pushState (stealPuck); }.

} else if (distance (this, aPuck) < 150) {.

// шайба попросту катится по катку, надо подобрать ее.

mBrain.popState ();

mBrain.pushState (pursuePuck); } }.

private function attack () :void { }.

private function stealPuck () :void { }.

private function pursuePuck () :void { } }.

Как вы могли заметить, методы attack (), stealPuck () и pursuePuck () объявлены, но не реализованы. Давайте реализуем их!

Показать весь текст
Заполнить форму текущей работой