logo
 
?

игровые автоматы муравьи

Хоть в статье используются Action Script 3 и Flash, вы с легкостью можете писать на удобном для вас языке.

Конечный автомат (или попросту FSM — Finite-state machine) это модель вычислений, основанная на гипотетической машине состояний.

В один момент времени только одно состояние может быть активным.

Следовательно, для выполнения каких-либо действий машина должна менять свое состояние.

Конечные автоматы обычно используются для организации и представления потока выполнения чего-либо. Например, для написания «мозга» врага: каждое состояние представляет собой какое-то действие (напасть, уклониться и т. Конечный автомат можно представить в виде графа, вершины которого являются состояниями, а ребра — переходы между ними.

Каждое ребро имеет метку, информирующую о том, когда должен произойти переход.

Например, на изображении выше видно, что автомат сменит состояние «wander» на состояние «attack» при условии, что игрок находится рядом.

Реализация конечного автомата начинается с выявления его состояний и переходов между ними.

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

Когда это произойдет, то состояние сменится на «go home».

Это же состояние останется активным, пока наш муравей не доберется до муравейника. Если курсор мыши отдаляется от муравья, что он должен делать: идти домой или искать лист?

После этого состояние вновь меняется на «find leaf». Выше мы уже показывали набор его состояний и переходов между ними. Решением такой проблемы является конечный автомат, основанный на стеке.