-1

Windows フォームを使用して C# でクイズ ゲームを作成しています。最初のアイデアは、次のように質問/回答を XML ファイルに入れることでした。

<?xml version="1.0" ?>
<quiz>
</question>
<question>
     <answers>

</question>

// More questions here

</quiz>

そして、以下のようなクラス/オブジェクトをフォームで使用することを計画していました:

class Question
{


var listOfQuestions = new List<Question>();
listOfQuestions.Add(question);

新しい質問/回答を簡単に追加できるように、これらの組み合わせをどのように使用するのか疑問に思っていました.フォームはラベルに質問を表示し、回答は4つの別々のボタンに表示されますか? おそらく、これを実現するためにフォームコード/XMLファイルに含めるものの例を誰かが手伝ってくれるでしょうか?

また、難易度ごとに異なる問題のセットを試してみたかったのですが、どうすればよいかわかりません。

お時間をいただきありがとうございます。

4

2 に答える 2

2

同じ要素にフリー テキストと子ノードを含めることはできないため、XML は少しずれています。これはもう少し正しいでしょう:

<?xml version="1.0"?>
<quiz>
    <question id="1" difficulty="1">
        <text>What is the capital city of Australia?</text>
        <answers>
            <wrongAnswer>Sydney</wrongAnswer>
            <correctAnswer>Canberra</correctAnswer>
            <wrongAnswer>Melbourne</wrongAnswer>
            <wrongAnswer>Adelaide</wrongAnswer>
        </answers>
    </question>

    <!-- More questions here  -->

</quiz>

また、他の質問に従って、使用できる属性をいくつか追加しました。

これらを Forms プロジェクトにロードする限り、各質問をバインドできる UserControl を作成することをお勧めしますが、これは WPF を使用する方がはるかに簡単です。どちらの ATM の例もありませんが、必要に応じて簡単なものを考え出すことができます。

于 2013-02-23T16:23:02.300 に答える
0

私があなたの言うことを正しく理解していれば、レベルフラグを使用してQuestionクラスを拡張し、クラスをXMLにシリアル化することができます。次に、起動時にXMLファイルをロードして逆シリアル化できます。

于 2013-02-23T16:19:28.720 に答える