用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後會開始下一次解鎖:
這裏寫圖片描述

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