我需要制作一个控制台应用程序,该程序在空白矩形内绘制一个圆,并创建一个线程,该线程激活一个每秒更改圆的位置的函数。
我的代码如下:
class Border
{
public void DrawLine(int X, char ends, char mids)
{
Console.Write(ends);
for (int i = 1; i < X - 1; ++i)
Console.Write(mids);
Console.WriteLine(ends);
}
public void DrawBox(int X, int Y)
{
DrawLine(X, '*', '*');
for (int i = 1; i < Y - 1; ++i)
DrawLine(X, '*', ' ');
DrawLine(X, '*', '*');
}
public void Main()
{
DrawBox(50, 20);
}
}
这是控制球及其运动的类:
class Ball
{
public int X = 25;
public int Y = 10;
public enum Directions
{
Up,
Down,
Left,
Right
};
Directions direction = Directions.Up;
public void Write()
{
Console.SetCursorPosition(X, Y);
Console.WriteLine("O");
Console.ReadKey(true);
}
public void Move()
{
if(direction == Directions.Up)
{
while(X < 50 && Y < 20)
{
Console.SetCursorPosition(X , Y - 1);
Console.WriteLine("O");
Console.ReadKey(true);
Y--;
}
}
if (direction == Directions.Down)
{
while (X < 50 && Y < 20)
{
Console.SetCursorPosition(X, Y + 1);
Console.WriteLine("O");
Console.ReadKey(true);
Y++;
}
}
if (direction == Directions.Left)
{
while (X < 50 && Y < 20)
{
Console.SetCursorPosition(X - 1, Y);
Console.WriteLine("O");
Console.ReadKey(true);
X--;
}
}
if (direction == Directions.Right)
{
while (X < 50 && Y < 20)
{
Console.SetCursorPosition(X + 1, Y);
Console.WriteLine("O");
Console.ReadKey(true);
X++;
}
}
}
}
到目前为止,主要内容如下:
class Program
{
static void Main(string[] args)
{
Border border = new Border();
Ball ball = new Ball();
border.Main();
ball.Write();
}
}
我需要添加一个线程,该线程每秒钟激活一次Move功能,当圆到达框的边界时,会显示一条消息,但是我很难确定如何使用线程。 如果有人可以帮助我解决这个问题,我将非常感激。