我有一个控制台应用程序要求用户回答问题,得分显示在屏幕的右上角,我希望当用户给出正确答案时,得分为自动更新。
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();
}
这是我的代码...我不知道要添加什么来自动更新分数。
答案 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方法。要找出当前光标的位置,请使用CursorLeft和CursorTop属性。当您想要在固定坐标处写东西时,保存当前光标位置,更改为固定位置,写入文本,然后更改回旧位置。
但是当所有文字到达屏幕的末尾并且顶部的文字消失时会发生什么?嗯,有办法解决这个问题,但不要打扰。只需使用窗口而不是控制台。