-1

我有一个要求用户回答问题的控制台应用程序,分数显示在屏幕的右上角,我希望分数在用户给出正确答案时自动更新。

    public void L1Timer()
    {
        Console.Clear();
        int ch = 0, score = 0;
        Console.Write("Chances : " + ch);
        Console.CursorLeft = 40;
        Console.Write("Marks : " + score);
        for (int time = 0; time <= 100000; time++)
        {
            Console.SetCursorPosition(65, 0);
            Console.Write("Time Elapsed : " + time + " Secs");
            Console.CursorLeft = 40;
            Thread.Sleep(1000);
        }
    }

    public void Level1()
    {
        Console.WriteLine("\n\n");
        Console.CursorLeft = 40;
        Console.WriteLine("C _ _ E _ _ _ T _ _ N");
        Console.WriteLine("\n\n");
        int tot = 0;
        while (tot != 70)
        {
            Console.Write("Guess : ");
            string gues = Console.ReadLine();
            if ((gues == "E") || (gues == "L") || (gues == "B") || (gues == "R"))
            {
                 tot += 10;
            } 
        }
    }

    static void Main(string[] args)
    {
        VocEnhancer VE = new VocEnhancer();
        Thread T1 = new Thread(new ThreadStart (VE.L1Timer));
        Console.WriteLine("\n\n\n\n\n");
        Thread T2 = new Thread(new ThreadStart(VE.Level1));

        T1.Start();
        T2.Start();
    }

这是我的代码...我不知道要添加什么来自动更新分数。

4

2 回答 2

0

首先是一个警告:控制台并不意味着显示图形、菜单或被绘制。它是用来写的,一次写一行。对于所有图形,都有窗口,应该使用窗口,而不是控制台。但是,如果您只是在闲暇时间玩耍和取笑,那么请继续在控制台中的陌生位置写字符。

要移动光标,请使用SetCursorPosition方法。要找出光标当前的位置,请使用CursorLeftCursorTop属性。当您想在固定坐标处写东西时,保存当前光标位置,更改为固定位置,写入文本,然后更改回旧位置。

但是,当所有文本都到达屏幕末尾,顶部的文本消失时会发生什么?好吧,有办法解决这个问题,但不要打扰。只需使用窗口而不是控制台。

于 2013-06-06T13:47:45.520 回答
0

Without your code, we can only assume and my suggestion as follows:

string question = "CEO of Microsoft";
string actualAnswer ="STEVE BALLMER";
Console.WriteLine(question);
string userAnswer = "";
Console.WriteLine(userAnswer);
int score = 0;
if(actualAnswer.Trim() == userAnswer.ToUpper().Trim())
{
score++;
}
于 2013-06-06T13:37:17.290 回答