回答編集履歴

3

2つ目にあげたコードの「不正解」選択肢の例の挙げ方に統一感がなかったので、読んだ時わかりやすいように統一しました。

2021/06/05 08:35

投稿

TomohiroKumagai
TomohiroKumagai

スコア441

test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  ```swift
82
82
 
83
- csvArray = ["問題,正解,不正解1,不正解2,選択肢3,選択肢4"]
83
+ csvArray = ["問題,正解,不正解1,不正解2,不正解3,不正解4"]
84
84
 
85
85
  quizArray = csvArray[quizCount].components(separatedBy: ",")
86
86
 

2

説明微調整

2021/06/05 08:35

投稿

TomohiroKumagai
TomohiroKumagai

スコア441

test CHANGED
@@ -110,4 +110,4 @@
110
110
 
111
111
 
112
112
 
113
- あとは、押したボタンに設定されている選択肢と、あらかじめデータに用意しておいた最初の選択肢(正解の選択肢)とが一致しているか判定することで「正解番号」を持たせなくても、正解判定ができそうです。
113
+ あとは、押したボタンに設定されている選択肢と、あらかじめデータに用意しておいた最初の選択肢(正解の選択肢)とが文字列的に一致しているか判定することで「正解番号」を持たせなくても、正解判定ができそうです。

1

説明調整

2021/06/05 08:08

投稿

TomohiroKumagai
TomohiroKumagai

スコア441

test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
 
76
76
 
77
- そうすると「正解の選択肢」が最初にあるので、それ (`quizArray[1]`) はそのまま、それ以降の選択肢 (`quizArray[2...]`) から無作為 (`shuffled()`) に3つを抽出 (`prefix(3)`)して連結すると、正解を必ず含む4つの選択候補が出来上がります。それをさらにランダムに並べ替えれば、正解がどこにあるかわからない4つの選択候補が出来上がります。
77
+ そうすると「正解の選択肢」が最初にあるので、それ (`quizArray[1]`) はそのまま、それ以降の選択肢 (`quizArray[2...]`) から無作為 (`shuffled()`) に並べたうちの先頭3つを抽出 (`prefix(3)`)して(表現がややこしいですが、簡単に言い換えると『無作為に3つ抽出』です)、それを正解と連結すると、正解を必ず含む4つの選択候補が出来上がります。それをさらにランダムに並べ替えれば、正解がどこにあるかわからない4つの選択候補が出来上がります。
78
78
 
79
79
 
80
80