ゲームのハイスコアを1〜5位まで保持しておきたいです。
UserDefaultsを使って保持しようと思うのですが
スコアが5位までに該当するかどうか判定する部分で困っています。
下記の様なコードで実装できるのかなと考えているのですが何回繰り返すと期待通りの結果になるのかがわからず困っています。
自分の考えとしてはhighScores0から順に今回のスコアと比較して今回のスコアがhighScoresを上回った時点でその順位より下のハイスコアを一つ下に移していき最後に今回のスコアをその順位に代入という方法で考えています。
forのここと書かれている部分をどの様にしたらいいのか教えていただきたいです。
またそもそもこの方法でできない場合どの様な方法が良いか教えていただきたいです。
import UIKit class ViewController: UIViewController { var score = 0 let userDefaults = UserDefaults.standard var highScores:[Int] = [] override func viewDidLoad() { super.viewDidLoad() saveHighScore() // Do any additional setup after loading the view. } //ハイスコアを保存 func saveHighScore(){ userDefaults.register(defaults: ["highScore": [0,0,0,0,0]]) highScores = userDefaults.object(forKey: "highScore") as! [Int] /* for i ここ{ if highScores[i] < score{ for c ここ{ highScores[highScores.count - c] = highScores[highScores.count - c - 1] } highScores[i] = score } } */ userDefaults.set(highScores, forKey: "highScore") } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/28 15:51