swift - 检查新整数与前一个整数的问题

标签 swift xcode random integer

我正在尝试制作类似于高低游戏的东西。到目前为止,我可以生成一个 1-25 之间的新整数。 我尝试编写一个函数,当您按下“较低”按钮时,它会根据前一个整数检查新整数,如果小于则在下面显示文本“您是正确的”并更新用户得分+1。如果错误,则会显示“您错了”,并且分数将重置为 0。

每当我按下下方按钮时,它都会给我一个新的整数,但分数不会更新,并且不会显示消息。这是我第一次真正尝试这样做,所以请耐心等待:)

降低按钮

    @IBAction func lower(sender: AnyObject) {
    var newNumber = randomIntBetween(2, high: 26)
    var oldNumber: Int?

    func lowerNumber() -> Int {
        if newNumber <= oldNumber {
            correctWrong.text = "You Were Correct!"
            score.text = "Score: \(countWin++)"
        } else {
            correctWrong.text = "You Were Wrong!"
            score.text = "Score: \(countLose)"
        }
        return newNumber
    }
     randomNumbers.text = "\(newNumber)"
}

随机数函数

    func randomIntBetween(low:Int, high:Int) -> Int {
    let range = high - (low - 1)
    return (Int(arc4random()) % range) + (low - 1)
}

使用的变量/常量

var countWin = 0
let countLose = 0

谢谢

最佳答案

据我所知,您的代码格式是否正确,您有一个嵌套函数,但您没有在函数内部调用它,因此不可能调用函数 lowerNumber() 。您需要像下面的代码一样调用该函数:

@IBAction func lower(sender: AnyObject) {
  var newNumber = randomIntBetween(2, high: 26)
  var oldNumber: Int?

  func lowerNumber() -> Int {
    if newNumber <= oldNumber {
        correctWrong.text = "You Were Correct!"
        score.text = "Score: \(countWin++)"
    } else {
        correctWrong.text = "You Were Wrong!"
        score.text = "Score: \(countLose)"
    }
    return newNumber
  }

  let newValue = lowerNumber()
  randomNumbers.text = "\(newValue)"
}

尽管如此,嵌套函数是具有名称的闭包,并且可以从其封闭函数中捕获值,因此您需要小心使用它。我推荐 @AirSpeedVelocity 的这篇文章来了解有关闭包及其捕获值的更多信息 A Basic Tutorial on Functions and Closures in Swift

希望这对您有帮助。

关于swift - 检查新整数与前一个整数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38769525/

相关文章:

objective-c - Unicode 格式化编译器警告 : Format specifies type 'unsigned short' but the argument has type 'int'

iphone - XCode/iOS 中特定于区域设置的默认设置

ios - 如何使 iPhone 4 应用程序适应所有 iOS 尺寸?

matlab - 创建范围内的随机数行向量且总和应等于 M

python - Regex Python - 修改随机生成的字符串

ios - 为什么 UIImageview 不是完美的圆?

swift - 如何在计时器应用程序上延迟几秒?

ios - Swift - 无法使用存储的属性覆盖 'itemSize'

ios - 设置AVCaptureDevice格式范围

r - 如何在 R 中打乱数据帧条目