控制台应用程序中的自动更新

时间:2013-06-06 13:20:07

标签: c#

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

    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();
    }

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

2 个答案:

答案 0 :(得分:0)

如果没有您的代码,我们只能假设和建议如下:

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++;
}

答案 1 :(得分:0)

首先警告:控制台不是为了显示图形,菜单或要绘制的。它应该写在当时的一行。对于所有图形,有窗口,应使用窗口,而不是控制台。但是,如果你只是闲逛并在闲暇时间取笑,那么请继续在控制台的陌生地方写字。

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

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