前提・実現したいこと
コードが冗長になりすぎているので、もっとシンプルに記述したいです。
システムとしては
①炎ボタンを押す
→② 1着、2着、3着の部分に1~6の数字の中からランダムに数字を表示(重複付加)
例
⭕️:1着:1 2着:3 3着:6
×:1着:2 2着:2 3着:4
という流れです。
発生している問題・エラーメッセージ
コードが長い。
該当のソースコード
swift
1 2import UIKit 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // Do any additional setup after loading the view. 9 } 10 11 @IBOutlet weak var first: UILabel! 12 13 14 @IBOutlet weak var second: UILabel! 15 16 17 @IBOutlet weak var third: UILabel! 18 19 20 @IBOutlet weak var answerLabel: UILabel! 21 22 // 選択(数字) 23 var answerNumber = 0 24 25 26 @IBAction func shuffleAction(_ sender: Any) { 27 answerLabel.text = "「博打なんてチョコレート。」" 28 29 // 新しい結果を一時的に格納する変数を設ける 30 var newAnswerNumber = 0 31 32 // ランダムに結果を出すが、前回の結果と異なる場合のみ採用 33 // repeatは繰り返しを意味する 34 repeat { 35 36 // 0~120をランダムに算出(乱数) 37 newAnswerNumber = Int.random(in: 0..<120) 38 39 // 前回と同じ結果のときは、再度、ランダムに数値を出す 40 // 異なる結果のときは、repeat を抜ける 41 } while answerNumber == newAnswerNumber 42 43 // 新しい結果を格納 44 answerNumber = newAnswerNumber 45 46 if answerNumber == 0 { 47 48 // 1,2,3 49 first.text = "1着:1" 50 second.text = "2着:2" 51 third.text = "3着:3" 52 53 } else if answerNumber == 1 { 54 55 // 1,2,4 56 first.text = "1着:1" 57 second.text = "2着:2" 58 third.text = "3着:4" 59 60 } else if answerNumber == 2 { 61 62 // 1,2,4 63 first.text = "1着:1" 64 second.text = "2着:2" 65 third.text = "3着:4" 66 67 } else if answerNumber == 3 { 68 69 // 1,2,5 70 first.text = "1着:1" 71 second.text = "2着:2" 72 third.text = "3着:5" 73 74 } else if answerNumber == 4 { 75 76 // 1,2,6 77 first.text = "1着:1" 78 second.text = "2着:2" 79 third.text = "3着:6" 80 81 } else if answerNumber == 5 { 82 83 // 1,3,2 84 first.text = "1着:1" 85 second.text = "2着:3" 86 third.text = "3着:2" 87 88 } else if answerNumber == 6 { 89 90 // 1,3,4 91 first.text = "1着:1" 92 second.text = "2着:3" 93 third.text = "3着:4" 94 95 } else if answerNumber == 7 { 96 97 // 1,3,5 98 first.text = "1着:1" 99 second.text = "2着:3" 100 third.text = "3着:5" 101 102 } else if answerNumber == 8 { 103 104 // 1,3,6 105 first.text = "1着:1" 106 second.text = "2着:3" 107 third.text = "3着:6" 108 109 } else if answerNumber == 9 { 110 111 // 1,4,2 112 first.text = "1着:1" 113 second.text = "2着:4" 114 third.text = "3着:2" 115 116 } else if answerNumber == 10 { 117 118 // 1,4,3 119 first.text = "1着:1" 120 second.text = "2着:4" 121 third.text = "3着:3" 122 123
以下省略、、、
補足情報(FW/ツールのバージョンなど)
xcode 11.3.1
コードはマークダウン(```)で囲ってください。見やすくなるだけではなく、コピーして再現するのも楽になります。