私は簡単なクイズアプリを作成しています。 4つの選択肢があり、選択肢の配置はランダムに生成されます。 4つのUILabelsが選択肢を表示するように設定されています。arc4random_uniform()を使った簡単なクイズ
私は以下のコードを書いており、通常はうまくいくが、時には同じ選択肢が表示されることがある。
EX)2017 2015 2015 1700
エラーがループのためにする必要がありますが、私は把握することはできません。
let questions = ["What year is now?"]
let answers = [["2017", "2015", "1000", "1700"]]
var rightAnswerPlacement:UInt32 = 0
var currentQuestion = 0
//Function that displays new question
func newQuestion()
{
lbl.text = questions[currentQuestion]
rightAnswerPlacement = arc4random_uniform(4)+1
// Create a button
var button:UIButton = UIButton()
var x = 1
for i in 1...4
{
//Create a button
button = view.viewWithTag(i) as! UIButton
if (i == Int(rightAnswerPlacement))
{
button.setTitle(answers[currentQuestion][0], for: .normal)
}
else
{
button.setTitle(answers[currentQuestion][x], for: .normal)
x = 2
}
}
button.setTitle(answers[currentQuestion][3], for: .normal)
currentQuestion += 1
}
'currentQuestion'はどこに値を取得しますか? 'answers'で値を調べるのにそれを使用しますが、決して値を割り当てません。 –
申し訳ありません私の質問を更新しました – rebecca87
私が正しく理解していれば、最初の答え(右のもの)をランダムに配置し、他の3つをランダムに配置したいのですか?ループの4回の反復(btw。固定数として4を使用せず、回答配列のサイズを確認します)では、4つのボタンを作成しますが、xインデックスカウントでは答えの1つをスキップすることがあります。また、あなたは[currentQuestion] [3] – Gerriet