四、鍵盤預設彈出&加入亂數

  1. 程式執行,鍵盤自動產出:
  2. ViewController.swift
  3. 函數-預設顯示:becomeFirstResponder
  4. 亂數產生0~100的數值:
  5. 函數-亂數:arc4random_uniform(x)+1
  6. 將Ulnt32轉型成int:(https://yulin0629.gitbooks.io/swift-/content/Integer.html)
  7. 把亂數存在變數answer裡
  8. 程式碼:

    var answer = Int(arc4random_uniform(100) + 1)
    

  9. 加入按下Guess的鍵,會印出答案的程式碼,並按下執行鍵▶看效果

    print("answer = \(answer)")
    


五、取得使用者輸入的數字inpoutTextField.text!

  1. 取得文字輸入框的文字inpoutTextField.text!
  2. 程式碼:

    print("answer = \(answer)")
    let inputText = inputTextField.text!
    //取得文字輸入框的文字
    print("inputText = \(inputText)")
    
  3. 加上!驚嘆號是表示,文字輸入框裡一定有文字

  4. print 亂數出來的結果
  5. print 使用者輸入的字串

2.程式執行效果(先輸入猜的數字,再按Guess button)

3.轉換型別:把輸入框裡的String字串,轉成Int整數

  • 輸入的文字inputText,是字串(String),無法與answer是整數Int相比
  • 所以要進行轉換:
let inputNumber = Int(inputText)
print("inputNumber = \(inputNumber)")

4.程式執行效果

六、判斷是否有值及輸入的值是否太大或太小。

if inputNumber == nil{
//若沒有輸入值
print("no input")
}else{
//若有輸入值
if inputNumber! > 100{
print("too large")
}else if inputNumber! < 1{
print("too small")
}else{
//確認答案
print("check answer")
}
}
  • 加上!驚嘆號是表示,文字輸入框裡一定有文字
  • Nil:沒有值。 程式執行效果:

七、清除文字輸入框的字

@IBAction func makeAGuess(_ sender: UIButton) {
print("answer = \(answer)")
let inputText = inpoutTextField.text!
//清除字串
inpoutTextField.text = ""

八、限制可輸入的最大及最小值並用變數取代之

  1. 先義二個變數maxNumber及minNumber
@IBOutlet weak var inputTextField: UITextField!
var maxNumber = 100
var minNumber = 1
//make a random number
var answer = Int(arc4random_uniform(100) + 1)
  1. 將原本的1及100用變數minNumber及maxNumber取代
@IBAction func makeAGuess(_ sender: UIButton) {
print("answer = \(answer)")
let inputText = inputTextField.text!
//取得輸入框文字
print("input = \(inputText)")
let inputNumber = Int(inputText)
print("inputNumber = \(inputNumber)")
if inputNumber == nil{
//若沒有輸入值
print("no input")
}else{
//若有輸入值
if inputNumber! > maxNumber{
print("too large")
}else if inputNumber! < minNumber{
print("too small")
}else{
//確認答案
print("check answer")
}
}

九、將提示文字由「print」,轉成「messagelabel.text」

@IBAction func makeAGuess(_ sender: UIButton) {
print("answer = \(answer)")
let inputText = inputTextField.text!
//取得輸入框文字
print("input = \(inputText)")
let inputNumber = Int(inputText)
print("inputNumber = \(inputNumber)")
if inputNumber == nil{
//若沒有輸入值
messagelabel.text = "no input"
}else{
//若有輸入值
if inputNumber! > maxNumber{
messagelabel.text = "too large"
}else if inputNumber! < minNumber{
messagelabel.text = "too small"
}else{
//確認答案
messagelabel.text = "check answer"
}
}
}

效果:

十、確認答案有二種情況:確認是對的答案及確認是錯的答案

所以將以下原始碼

//確認答案
messagelabel.text = "check answer"

置換成

if inputNumber == answer{
//答對了
messagelabel.text = "You're right"
}else{
//答錯了
messagelabel.text = "you are wrong, try again"
}

十一、錯的答案有二種可能:比正確答案大,比正確答案小

所以將以下原始碼

//答錯了
messagelabel.text = "you are wrong, try again"

置換成:

//答錯了的二種情況
if inputNumber! > answer{
//當猜的數字 大於 答案
maxNumber = inputNumber!
}else{
//當猜的數字 小於答案
minNumber = inputNumber!
}
messagelabel.text = "try again! Guess a number between \(minNumber)~\(maxNumber)"

效果:

results matching ""

    No results matching ""