开发者

Random AI / Switch case?

So I have a very simple game开发者_StackOverflow going here..., right now the AI is nearly perfect and I want it to make mistakes every now and then. The only way the player can win is if I slow the computer down to a mind numbingly easy level.

My logic is having a switch case statement like this:

int number = randomNumber

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

How can I have it select case 2 68% (random percentage, just an example) of the time, but still allow for some chance to make the computer fail? Is a switch case the right way to go? This way the difficulty and speed can stay high but the player can still win when the computer makes a mistake.

I'm on the iPhone. If there's a better/different way, I'm open to it.


Generating Random Numbers in Objective-C

int randNumber = 1 + rand() % 100;

if( randNumber < 68 )
{
//68% path
}
else
{
//32% path
}


int randomNumber = GeneraRandomNumberBetweenZeroAndHundred()

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


Many PRNGs will offer a random number in the range [0,1). You can use an if-statement instead:

   n = randomFromZeroToOne()

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

If you're going to generate an integer from 1 to N, instead of a float, beware of modulo bias in your results.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜