向用户显示随机字符串,并将用户选择与正确答案进行比较

时间:2013-12-14 14:04:48

标签: c# arrays

我正试图制作一个“谁想成为百万富翁”游戏。

我有15txt表示级别,在每个级别我有3个问题,例如:

Qual e a capital do Brasil? || Rio de Janeiro || Brasilia || Sao Paulo || Curitibia || Brasilia ||
Quantas sao as Tartarugas Ninja? || Quatro || Tres || Cinco || Duas || Quatro ||
Como se chama o estadio do Sporting Clube Portugal? || Sporting Arena || Esperanca XXI || Alvalade XXI || Leao XXI || Alvalade XXI ||

抱歉,这是葡萄牙文。

到目前为止我所拥有的:

string[][] pergresp = File.ReadLines("l1.txt").Select(s => s.Split('|')).ToArray();
将问题放在[0] [0],[1] [0],[2] [0]上。
答案在[0] [1],[0] [2],[0] [3],[0] [4]以及[0] [5]上的正确答案中。

如何向用户显示随机问题中的一个,以及如何将用户的选择与正确的选项进行比较?

谢谢

1 个答案:

答案 0 :(得分:3)

创建将代表问题实体的类

public class Question
{
    public string What { get; set; }
    public string[] Answers { get; set; }
    public string Correct { get; set; }

    public bool IsCorrect(string answer)
    {
        if (answer.Equals(Correct, StringComparison.OrdinalIgnoreCase))
            return true;

        return false;
    }
}

解析文件中的问题

class Program
{
    static void Main(string[] args)
    {
        var quest = File.ReadLines("l1.txt").Select(ProcessLine).ToArray();
        var rnd = new Random();            
        int questionNum = rnd.Next(0, quest.Length - 1);
        Question question = quest[questionNum];
        Console.WriteLine(quest[questionNum].What);

        // Get the user input
        //if(question.IsCorrect(userAnswer))
        //    Console.WriteLine("Win");
        //else
        //    Console.WriteLine("Try again");
    }

    private static Question ProcessLine(string s)
    {
        var tokens = s.Split('|');

        if (tokens.Length <= 2)
            throw new ArgumentException("Invalid question");

        return new Question()
        {
            What = tokens[0],
            Answers = tokens.Skip(1).Take(tokens.Length - 2).ToArray(),
            Correct = tokens[tokens.Length - 1]
        };
    }
}

你应该知道碰到了什么。代码中也会有一些错误,所以要调试它们。