用swift编写ios应用-猜数解锁

版本:

swift 4,ios 11.2,smulater: iPhone 7

//  ViewController.swift
//  NumberLock
//
//  Created by lin on 2018/3/19.
//  Copyright © 2018年 lin. All rights reserved.
//

import UIKit
import GameKit

class ViewController: UIViewController {
    var answer = GKRandomSource.sharedRandom().nextInt(upperBound: 100) + 1 //make a random number 1-100
    var maxNumber = 100
    var minNumber = 1
    var isOver = false
    //change the UI color
    override var preferredStatusBarStyle: UIStatusBarStyle{
        return .lightContent
    }

    @IBOutlet weak var messageLable: UILabel!

    @IBOutlet weak var inputTextfiled: UITextField!

    @IBOutlet weak var background: UIImageView!

    @IBAction func makeAGuess(_ sender: UIButton) {
        if isOver == false{
            //playing game
            print(answer)

            //take input text out
            let inputText = inputTextfiled.text!

            //clear textfield
            inputTextfiled.text = ""

            let inputNumber = Int(inputText)
            if inputNumber == nil{
                //wrong input
                messageLable.text = "No input! Guess a number between \(minNumber) ~ \(maxNumber)"
            }else{
                //input ok
                if inputNumber! > maxNumber{
                    //user input too large
                    messageLable.text = "Too large! Guess a number between \(minNumber) ~ \(maxNumber)"
                }else if inputNumber! < minNumber{
                    //user input too small
                    messageLable.text = "Too small! Guess a number between \(minNumber) ~ \(maxNumber)"
                }else if inputNumber! == answer{
                    //Bingo! right answer
                    messageLable.text = "You are right! Press to play again!"
                    isOver = true
                    background.image = UIImage(named: "Finish")

                }else{
                    //check answer
                    if inputNumber! > answer{
                        //lager than answer
                        maxNumber = inputNumber!
                    }else{
                        //smaller than answer
                        minNumber = inputNumber!
                    }
                    messageLable.text = "Try again! Guess a number between \(minNumber) ~ \(maxNumber)"

                }
            }
        }else{
            //game is over
            maxNumber = 100
            minNumber = 1
            messageLable.text = "Guess a number between \(minNumber) ~ \(maxNumber)"
            answer = GKRandomSource.sharedRandom().nextInt(upperBound: 100) + 1 //make a random number 1-100
            isOver = false
            background.image = UIImage(named: "BG")
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        //push the keyboard up
        inputTextfiled.becomeFirstResponder()
        // Do any additional setup after loading the view, typically from a nib.

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

开始画面:
这里写图片描述

输入数字并按下Guess,会提示下一次猜测的范围:
这里写图片描述

如果输入的数字过大或过小:
这里写图片描述这里写图片描述

猜对以后,解锁成功:
这里写图片描述

按下Guess后会开始下一次解锁:
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章