2016-08-04 14 views
0

Imは、低いロー・ゲームに似たものを作ろうとしています。今のところ私は生成される1から25の間の新しい整数を得ることができます。 Iveは 'lower'ボタンを押すと新しい整数を前のものと比較する関数を書こうとしました。それよりも小さければ 'You Were Correct'と表示され、ユーザースコア+1が更新されます。前の値と比較して新しい整数をチェックする問題

下のボタンを押すたびに新しいintが返されますが、スコアは更新されず、メッセージは表示されません。この

var countWin = 0 
let countLose = 0 

を使用し、これはとても私と一緒にクマ作るのが私の最初の本当の試み:)

下のボタンである

@IBAction func lower(sender: AnyObject) { 
    var newNumber = randomIntBetween(2, high: 26) 
    var oldNumber: Int? 

    func lowerNumber() -> Int { 
     if newNumber <= oldNumber { 
      correctWrong.text = "You Were Correct!" 
      score.text = "Score: \(countWin++)" 
     } else { 
      correctWrong.text = "You Were Wrong!" 
      score.text = "Score: \(countLose)" 
     } 
     return newNumber 
    } 
    randomNumbers.text = "\(newNumber)" 
} 

乱数機能

func randomIntBetween(low:Int, high:Int) -> Int { 
    let range = high - (low - 1) 
    return (Int(arc4random()) % range) + (low - 1) 
} 

変数/定数のおかげ

+0

私は少し混乱しています。ここにコピー/ペーストエラーはありますか? lowerNumber関数が下位のIBAction関数内にネストされており、そのネストされたメソッドが呼び出されることはありません。私が見るところでは、ユーザーがボタンを押したときに、2つの変数を宣言してテキストフィールドのテキストを更新するだけです。さらに、oldNumberをIBAction関数内のvarではなくクラスプロパティにしたいと思っています。 – ghostatron

+0

いいえ、これはこのようなものを試してみた私の最初の試みであり、私はそれを正しくやっているかどうか完全にはっきりとしていないので、素早くやっていません。 Victorが修正したものから、今どこが間違っているのかを確認してください。 – Jeremy

答えて

0

あなたのコードが正しくフォーマットされているかどうかは、ネストされた関数がありますが、関数内で呼び出さないので、関数lowerNumber()が呼び出されることは不可能です。あなたは、次のコードのような関数を呼び出す必要があります。

@IBAction func lower(sender: AnyObject) { 
    var newNumber = randomIntBetween(2, high: 26) 
    var oldNumber: Int? 

    func lowerNumber() -> Int { 
    if newNumber <= oldNumber { 
     correctWrong.text = "You Were Correct!" 
     score.text = "Score: \(countWin++)" 
    } else { 
     correctWrong.text = "You Were Wrong!" 
     score.text = "Score: \(countLose)" 
    } 
    return newNumber 
    } 

    let newValue = lowerNumber() 
    randomNumbers.text = "\(newValue)" 
} 

それにも関わらず、ネストされた関数は名前があり、その使用に慎重にする必要がありますので、その外側の関数から値をキャプチャすることができますクロージャです。クロージャとそのキャプチャ値の詳細については、@AirSpeedVelocityのこの記事をお勧めします。A Basic Tutorial on Functions and Closures in Swift

私はこの助けを願っています。

+0

ありがとうございました:)ありがとうございました。 – Jeremy

+0

@Jeremyええ、私の更新された答えを見てください。 –

関連する問題