构建一个简单的猜谜游戏,iPhone

时间:2010-12-24 03:12:31

标签: iphone objective-c

我正在尝试构建一个简单的猜谜游戏。我有一个奇怪的问题:

-(int)setRandom {
    randomNum=(int)arc4random() % 100;
    return randomNum;
}

-(IBAction)submit
{
    num=[self setRandom];
    if([numberField.text intValue] > num)
        randomNumLabel.text=@"Too high. Try again";
    else if([numberField.text intValue] < num)
        randomNumLabel.text=@"Too low. Try again";
    else
        randomNumLabel.text=@"You got it, congrats!";

}

问题是每次按提交时我都会得到一个新的随机数。我认为第一种方法会创建随机数,每次都会相同,但显然不是。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

每次提交时都不要调用setRandom。 arc4random()每次调用时都会返回一个新的随机数。

创建一个存储随机数的属性,并仅在需要时设置 - 在初始化和游戏重置时。

答案 1 :(得分:1)

为此,你需要一个全局变量。首先是一个fall声明

NSInteger num;在.h类然后在viewDidLoad写这样的

- (void)viewDidLoad {

   num=[self setRandom];
  //you stuff
}

然后提交

-(IBAction)submit
{
    if([numberField.text intValue] > num)
        randomNumLabel.text=@"Too high. Try again";
    else if([numberField.text intValue] < num)
        randomNumLabel.text=@"Too low. Try again";
    else
       {
        randomNumLabel.text=@"You got it, congrats!";
         num=[self setRandom];
       }

}

-(int)setRandom {
    randomNum=(int)arc4random() % 100;
    return randomNum;
}

这里你在查看加载时得到一个随机数,然后当你的答案与数字匹配时,你会得到一个新的随机数。

所以这对你有帮助。

相关问题