Случайный случай AI / Switch? - PullRequest
0 голосов
/ 13 октября 2009

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

Моя логика состоит в следующем:

int number = randomNumber

case 1:
computer moves the complete opposite way its supposed to
case 2:
computer moves the correct way

Как я могу выбрать случай 2 68% (случайный процент, просто пример) времени, но все же дать шанс для сбоя компьютера? Является ли корпус переключателя правильным способом? Таким образом, сложность и скорость могут оставаться высокими, но игрок все равно может выиграть, если компьютер допустил ошибку.

Я на iPhone. Если есть лучший / другой способ, я открыт для этого.

Ответы [ 3 ]

1 голос
/ 13 октября 2009

Генерация случайных чисел в Objective-C

int randNumber = 1 + rand() % 100;

if( randNumber < 68 )
{
//68% path
}
else
{
//32% path
}
0 голосов
/ 13 октября 2009

Многие PRNG предлагают случайное число в диапазоне [0,1). Вместо этого вы можете использовать оператор if:

   n = randomFromZeroToOne()

   if n <= 0.68:
        PlaySmart()
   else: 
        PlayStupid()

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

0 голосов
/ 13 октября 2009
int randomNumber = GeneraRandomNumberBetweenZeroAndHundred()

if (randomNumber < 68) {
computer moves the complete opposite way its supposed to
} else {
computer moves the correct way
}
...