我想实现一个程序,显示一些在控制台上随机移动的字符,每个字符都有不同的速度.
我创建了一个递归方法,在控制台上随机移动一个字母.当我想移动两个字母时,我使用两个线程调用相同的方法.
该程序在第一分钟完美运行,但过了一段时间后,这些字母开始在控制台上出现!
我确定我的递归方法没问题(我甚至尝试创建另一种方法,这次只使用一段时间(i <100000)而不是递归.但出现了同样的错误).有人可以帮我吗?
非常感谢你.
编辑:对不起,这是一个示例代码(不考虑如果字母占据相同的位置会发生什么).字母在"体育场"上移动,它们在x轴上移动20-51,在y轴上移动5-26.
public void WriteAt(string s, int x, int y)
{
try
{
Console.SetCursorPosition(x, y);
Console.Write(s);
}
catch (ArgumentOutOfRangeException e)
{
Console.Clear();
Console.WriteLine(e.Message);
}
}
public void impresion()
{
int x = random.Next(20, 51);
int y = random.Next(5, 26);
WriteAt("A", x, y);
imprimir("A", x, y, 80);
}
public void impresion2()
{
int x = random.Next(20, 51);
int y = random.Next(5, 26);
WriteAt("E", x, y);
imprimir2("E", x, y, 20);
}
public void go()
{
Thread th1 …Run Code Online (Sandbox Code Playgroud) 我想实现一个运行模拟的C#控制台应用程序.另外,我想给用户一个机会,以便在控制台上按下'+'或' - '来模拟/减速模拟的速度.
有没有办法在写入时读取控制台?我相信我可以使用多线程,但我不知道怎么做(我还是新的C#).
非常感谢你!