Программирование игр для Windows. Советы профессионала


Вероятностные автоматы - часть 5


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

Алгоритм 13.6. Использование плотности вероятностей в выборе состояния.

table_1 = {1,1,1,2,2,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6};

table_2 = {1,1,2,2,2,2,3,3,3,3,3,3,4,4,5,5,5,5,5,6};

while (идет игра)

{

...код программы

if (выполняются команды одного из состояний)

{

...продолжать их выполнение

} else

//Выбираем новое состояние

{

if(расстояние между игроком и противником > 100)

{ новое состояние=table_1 [rand()%20];

}

else

{ if(расстояние < 100 и игрок стреляет)

{ новое состояние=table_2[rand()%20];

}

else

// Чисто случайный выбор

{

новое состояние=rand()%7;

}

} // конец оператора else

} // конец выбора нового состояния

} // конец главного цикла while

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

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

Во всяком случае, пойдем дальше. В следующих разделах мы будем говорить о том, что является частью, как я говорю, «эзотерической коллекции». Это довольно интересно, хотя и совершенно не используются в играх сегодняшнего дня. Быть может, игры завтрашнего дня опять вернутся к этой концепции.




Начало  Назад  Вперед



Книжный магазин