2016-08-29 4 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(one、two、three) 'のすべての' toString() '呼び出しを削除することができます。 – byxor

+0

@BrandonIbbotsonしかし、私の問題は解決しません。今のところ、それは動作します、私はcorrectChoice(Answer)が3つのラジオボタンオプションの中でランダムに来ることを意味します –

+0

私はそれが問題を解決しないことを知っています。だからこそ、それはコメントであり、答えではない。 – byxor

答えて

3

あなたのフラグメントは正しい答えを隠す文字列をシャッフルします。代わりに、各選択肢のテキスト正しい状態、およびそれが割り当てられていたためにボタン関連付ける:

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

Questionがボタンにシャッフルして割り当てられる準備ができて、List<Choice> choicesが含まれてみましょう。ボタンの操作ActionListenerで、choicesで一致するボタンを検索し、選択した選択肢の正しさを判断します。それに応じてスコアを更新してください。

+0

私は申し訳ありませんが、私はあなたの提案を理解できませんでした。詳細を教えていただけますか? –

+0

選択のシャッフルの前にスコアを計算することも可能ですか? –

+0

質問に答えるまでスコアを計算することはできません。具体的なガイダンスについては、質問を編集して、改訂されたアプローチを示す[mcve]を含めてください。 – trashgod