-1
大家好我正在創建一個叫做Quiz遊戲的程序。現在我的問題是如何產生一個不重複的問題?我所有的問題都存儲在switch語句中。我試過並搜索了所有可能的解決方案,但仍然得到相同的輸出結果。我的下面的代碼只是一個樣本,我沒有粘貼它所有的bcoz它太長。每當我調用Question()方法時,它都會隨機,但有時候已經問過的問題正在被再次提問。如何在c中生成唯一的隨機數字#
public void Question()
{
var random = new Random((int)DateTime.Now.Ticks);
var randomValue = random.Next(1, 8);
switch (randomValue)
{
case 1:
ans = 1;
btnA.Visible = true;
btnB.Visible = true;
btnC.Visible = true;
btnD.Visible = true;
btn50.Enabled = true;
btndoubledip.Enabled = true;
lblQuestion.Text = "1+1=?";
voice = new SpeechSynthesizer();
voice.SelectVoiceByHints(VoiceGender.Male, VoiceAge.Child);
voice.SpeakAsync(lblQuestion.Text.ToString());
btnA.Text = "2";
btnB.Text = "1";
btnC.Text = "4";
btnD.Text = "5";
}
break;
我甚至不認爲你的發佈代碼會編譯。 – maccettura
你真的在錯誤地思考這個問題。首先,不要使用switch語句 - 將問題保存在List中,隨機排列列表(在Stack Overflow上執行該操作的方法很多),然後按照新的順序遍歷它們。 – DavidG
你將需要以某種方式存儲已經問過的問題列表。或者在選擇另一個問題之前存儲問題列表並從中刪除項目。 –