0

我目前正在编写一个程序,它生成一个answer介于 1 和 100 之间的值:

int answer = 0;
answer = arc4random() % 100 + 1;

我首先让用户猜测屏幕上某个字段中的值。然后脚本将运行一个简单的循环来确定他们输入的值是否与随机answer值匹配。

此时,我有一个初始屏幕,要求用户猜测。他们输入一个数字并单击一个按钮以提交该值。问题是,如果他们没有answer从第一个条目中猜出正确的值,那么答案值会重新生成,并在每次按钮单击时应用于新的随机值。

然后我的问题是如何在视图开始时生成随机值,然后保持直到用户正确猜到该值。

我的尝试是重新定位:

int answer = 0;
answer = arc4random() % 100 + 1;

到页面的开头,但随后出现错误,指出answer稍后在页面上调用该方法时缺少标识符。感谢您的帮助,非常感谢。

4

1 回答 1

0

我认为问题在于您将随机生成代码段放入您的 IBAction 中,正如您在评论中所述:

这是获取字段中提交的值的方法

这意味着guessNow:sender中的代码将在用户每次点击按钮时被触发,这意味着每次用户提交一个没有意义的猜测时你都会生成一个随机数。

//this is the method which takes the value submitted in the field and changes the label display after the user clicks the guess now button

- (IBAction)guessNow:(id)sender {

//set the random siri guess value between 1 and 100

int answer = 0;
answer = arc4random() % 100 + 1;

self.usersGuess = self.guessNumberField.text;

您应该将该代码块放入 viewDidLoad() 并将属性 _answer 添加到您的 .h

这是一个快速的解决方案,我没有在 XCode 上写这个,所以可能有语法错误

在你的 .h 中,添加

@property (strong) int _answer;

在您的 .m 中,将其从guessNow:sender 中删除

int answer = 0;
answer = arc4random() % 100 + 1;

并将其添加到您的 viewDidLoad()

answer = arc4random() % 100 + 1;

此外,您可能想添加另一个按钮来重置随机数,所以我会说将随机数生成隔离到您的 .m 中这样的私有方法

- (void)generateRandomNumber
{
    self.answer = arc4random() % 100 + 1;
}

因此,您可以在 viewDidLoad() 中使用此方法生成初始随机数并将其用于重置按钮(如果有)

希望能帮助到你。

于 2013-10-11T17:33:47.813 回答