首页 > 解决方案 > 你如何在按钮之间共享一个随机生成的整数?

问题描述

抱歉,我对 Xcode 还很陌生,但是这里有……我正在尝试制作这个非常简单的乘法游戏,我有两个按钮,一个用于生成下一个问题,一个用于提交您的答案。问题是,我需要两个按钮来“知道”应该相乘的两个相同的随机整数,但是这两个按钮会生成两组不同的整数,所以问题可能类似于“什么是 10 * 8”,而计算机认为正确的答案可能是 5 * 5。(我为两个不同的按钮使用了发件人标签,提交按钮的发件人标签为 2,下一个问题的按钮的发件人标签为 1。)请帮忙!这是完整的代码:

@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var answerBox: UITextField!
@IBOutlet weak var scoreLabel: UILabel!
@IBAction func button(_ sender: AnyObject) {
var thing = 1
var score = 0
if thing < 11
{
    let firstNumber = Int(arc4random_uniform(UInt32(11)))
    let secondNumber = Int(arc4random_uniform(UInt32(11)))
    let answer = Int(firstNumber * secondNumber)
    let answerString = "\(answer)"
    
    
    questionLabel.text = "What is " + "\(firstNumber)" + " x " + "\(secondNumber)"
            
    
    
    if sender.tag != 1
    {
        if answerBox.text == answerString
        {
            score += 1
            scoreLabel.text = "Score: " + "\(score)"
            questionLabel.text =  "Correct!"
            thing += 1
            self.answerBox.text = ""
        }
        else if answerBox.text !=  answerString
        {
            scoreLabel.text = "Score: " + "\(score)"
            questionLabel.text = "Incorrect..."
            thing += 1
            self.answerBox.text = ""
        }
    if sender.tag == 1
    {
        
        questionLabel.text = "What is " + "\(firstNumber)" + " x " + "\(secondNumber)"
            
    }
    if thing > 10
    {
        self.questionLabel.text = "Your score was " + "\(score)" + " out of 10!"
        thing -= 10
        score = 0
        self.scoreLabel.text = "Score: 0"
        }
    }
    
    
       
    }
    

}

}

标签: xcoderandom

解决方案


我不太明白您的问题,但一种解决方案可能是将您生成的数字存储为私有类属性,然后您可以稍后访问它们,您的按钮将“知道”生成的值。

class yourViewController {

    private var firstNumber: Int = 0
    private var secondNumber: Int = 0
    private var answer: Int = 0
    private var answerString: String = ""

    func viewDidLoad() {


    }

    @IBAction func button(_ sender: AnyObject) {
        if thing < 11 {
        
            firstNumber = Int(arc4random_uniform(UInt32(11)))
            secondNumber = Int(arc4random_uniform(UInt32(11)))
            answer = Int(firstNumber * secondNumber)
            answerString = "\(answer)"
    
    
            questionLabel.text = "What is " + "\(firstNumber)" + " x " + "\(secondNumber)"
            
            .
            .
            .
        }
    }

}

推荐阅读