Reputation: 514
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
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