2016-08-29 47 views
0

我可以在選項(單選按鈕)洗牌之前計算得分/點數,如下面的代碼所示。在Collection.shuffle()之前,選項是固定的,因爲correctChoice將始終分配給c2單選按鈕。所以我可以使用像計算得分/測驗遊戲的積分

if (c2.isSelected()) 
score=score+2; 

然後我洗牌的選擇。

QsL.setText(Question.get(i).getQs().toString()); 
c1.setText(Question.get(i).getChoiceOne()); 
c2.setText(Question.get(i).getCorrectChoice()); 
c3.setText(Question.get(i).getChoiceTwo()); 
scorelbl.setText(Question.get(i).getScore()); 
if (c2.isSelected()) { 
    score=score+2; 
    JOptionPane.showMessageDialog(null,score); 
} 
String one = Question.get(i).getChoiceOne(); 
String two = Question.get(i).getChoiceTwo(); 
String three = Question.get(i).getCorrectChoice(); 
List<String> choices = Arrays.asList(one, two, three); 
Collections.shuffle(choices); 
c1.setText(choices.get(0).toString()); 
c2.setText(choices.get(1).toString()); 
c3.setText(choices.get(2).toString()); 

感謝您的提前回答。我編輯了這篇文章。

+0

如果你說'數組。 asList(一,二,三)'你可以刪除所有'toString()'調用。 – byxor

+0

@BrandonIbbotson,但它不會解決我的問題。現在,它的工作原理,我的意思是correctChoice(Answer)在三個單選按鈕選項中是隨機的 –

+0

我知道它不會解決問題。這就是爲什麼它是評論而不是答案。 – byxor

回答

3

你的片段混洗了字符串,這掩蓋了正確的答案。取而代之的是,每一個選擇的文本正確狀態,按鈕到它被分配相關聯:

class Choice { 
    String text; 
    Boolean correct; 
    JRadioButton button; 
} 

Question包含List<Choice> choices,隨時可以混排和分配給按鈕。在按鈕的動作ActionListener中,搜索choices以查找匹配按鈕,以確定選定選項的正確性。相應地更新分數。

+0

請原諒我,但我不明白你的建議。你能提供一些細節嗎? –

+0

如果我在選擇洗牌之前計算分數,是否也有可能? –

+0

在問題得到解答之前,您無法計算分數;有關更具體的指導,請編輯您的問題,以包含顯示您修改方法的[mcve]。 – trashgod