根据游戏状态随机生成敌方统计数据

时间:2013-01-13 05:10:43

标签: objective-c algorithm random

在我的游戏中,我想要的是,玩家玩游戏的次数越多,通过随机生成它们来杀死的敌人就越难,比如iOS上的游戏“Dungeon Raid”。这是敌人应该拥有的统计数据:

  • HP
  • 攻击
  • 时间:攻击前敌人需要秒数(时间越长,敌人越慢。)
    • 时间因攻击量而异(如果敌人真的很强,那一定很慢)
  • 得分:敌人在被杀时得分

我认为可以做的是确定敌人可以获得的最小统计数据,然后根据游戏状态增加它,并使用算法相应地计算它们,但我真的不知道如何做它甚至从哪里开始。

1 个答案:

答案 0 :(得分:1)

您可能希望首先能够生成特定范围内的随机数。最简单的情况是在最小值和最大值之间均匀地生成随机数。随着游戏的进行,您可以更改最小值和最大值以及统计数据。你的球员。

你可以这样做,

NSUInteger BoundedUniformRandomNumber( NSUInteger min, NSUInteger max)
{
    NSUInteger range = max - min;
    u_int32_t randomNumber = (u_int32_t)min + arc4random_uniform((u_int32_t)range);
    return (NSUInteger)randomNumber;
}

请注意,arc4random_uniform来自stdlib所以请包含#import <stdlib.h>arc4random_uniform也是半开的,这意味着它会返回最小值,但会永远不会返回最大值。因此,您在上述函数中生成的最大值实际为max - 1

希望这能让你开始。