ИИ

По чуть-чуть

Изменил алгоритм патрулирования, теперь в наличии 6 вариантов обхода, что разнообразит игру.

Сам алгоритм ниже:

if (as %2 == 0) {f=w;n=h;} else {n=w;f=h;}
for(int i=0;i<f;i++)
for(int j=0;j<n;j++)
{
int off;
int ii=i,jj=j;
if (as && 0x2)
if (as%2 == 0) {ii=(w-i)-1;} else {ii=(h-i)-1;}
if (as && 0x4)
if (as%2 == 0) {jj=(h-j)-1;} else {jj=(w-j)-1;}
if (as%2==0) off=jj*w+ii; else off=ii*w+jj;
}

ИИ. Обход территории. Дополнение

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

Для флага и индекса использую одну переменную в структуре TMazeCreature - это int cPoint.
В самом начале переменная равная 0 и означает, что существо (моб) прошел(узнал) не всю карту.
В случае когда карта пройдена выполняется инструкции:

ИИ. Патрулирование

Одним из важнейших составляющих игры является наличие так называемого искусственного интеллекта. Чем хуже ИИ – тем скучнее игра.

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

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

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

RSS-материал