Yashwin Munsadwala
Yashwin Munsadwala

Reputation: 514

Error in the output of the following SWIFT program

I have checked my code thrice and not able to find any error in it but my output is showing me the wrong answer. The code is of the simple adding game tester.

import UIKit

class ViewController: UIViewController {

    var score = 0
    var firstNumber: Int?
    var secondNumber: Int?
    var answer: Int?
    var input: Int?
    var count = 0
    @IBOutlet weak var lblTitleLabelOUTLET: UILabel!
    @IBOutlet weak var lblEquationOUTLET: UILabel!
    @IBOutlet weak var txtAnswerFieldOUTLET: UITextField!
    @IBOutlet weak var btnCheckAnswerOUTLET: UIButton!
    @IBOutlet weak var lblScoreDisplayerOUTLET: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
    displayQuestion()


}

    @IBAction func pressedCheckedAnswerButtonACTION(sender: UIButton) {
        if (input == answer){
            score = score + 1
            lblScoreDisplayerOUTLET.text = "Your score is \(score) out of \(count) "
            }
        else{
            lblScoreDisplayerOUTLET.text = "Incorrect ans "
        }
    displayQuestion()
    }

    func displayQuestion() {

        firstNumber = Int(arc4random_uniform(10))
        secondNumber = Int(arc4random_uniform(10))
        lblEquationOUTLET.text =  String(firstNumber!) +  "  +  "  + String(secondNumber!) +  "  =  "
        answer = firstNumber! + secondNumber!
        input = Int(txtAnswerFieldOUTLET.text!)
        lblTitleLabelOUTLET.text = String(input)

        count = count + 1
        }

}

Upvotes: 1

Views: 71

Answers (1)

vacawama
vacawama

Reputation: 154631

You are computing input when you create and display the question. You need to move that code to the top of pressedCheckedAnswerButtonACTION.

@IBAction func pressedCheckedAnswerButtonACTION(sender: UIButton) {
    input = Int(txtAnswerFieldOUTLET.text!)

    if input == answer {
        score = score + 1
        lblScoreDisplayerOUTLET.text = "Your score is \(score) out of \(count) "
    }
    else {
        lblScoreDisplayerOUTLET.text = "Incorrect ans "
    }
    displayQuestion()
}

Upvotes: 2

Related Questions