C#问答游戏-同一文件中的问答

本文关键字:问答 文件 游戏 | 更新日期: 2023-09-27 18:00:37

我正在使用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);

我想知道我该如何使用这些组合,这样我就可以轻松地添加新的问题/答案,然后表单会在标签中显示问题,答案会在四个单独的按钮上?也许有人可以帮我举一个例子,说明我将在表单代码/XML文件中包含什么来实现这一点?

我也想尝试,也许针对不同的难度水平提出不同的问题,但也不确定我会怎么做。

谢谢你抽出时间。

C#问答游戏-同一文件中的问答

您的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的例子,但如果需要的话,我可以想出一些简单的东西。

如果我理解得对,您可以简单地用级别标志扩展Question类,并将类序列化为XML。然后您可以在启动时加载XML文件并对其进行反序列化。