我想寫一個'*'到屏幕中心,並且它可以隨機移動到rigth,left,up或down每100毫秒。如果'*'是在行,它必須在該行的開始,如果它在列的末尾,它必須在該列的開始(也是他們的反向scenerio是有效的)。我寫了那個代碼,但問題是,我不能刪除舊運動(所以每個運動都有'*'),我解決它將'_'加入舊運動。有沒有其他解決方案在屏幕上製作一個'*'?而且我不能刪除舊的運動,如果「*」是在row.Here的到底是源代碼:隨機移動星星在屏幕上
private static void MovementOfStar()
{
int row = 40, col = 12;
Console.CursorVisible = false;
Console.SetCursorPosition(row, col);
int direction = 0;
Random r = new Random();
for (int i = 0; i < 1000; i++) // count of movement
{
Console.Write("*");
System.Threading.Thread.Sleep(100);
Console.Write('\b');
Console.Write("_");
direction = r.Next(5);
while (direction== 0)
direction = r.Next(5);
switch (direction)
{
case 1:
if (row + 1 >= 80)
row = 0;
Console.SetCursorPosition(row++, col);
break;
case 2:
if (row - 1 <= 0)
row=79;
Console.SetCursorPosition(row--, col);
break;
case 3:
if (col + 1 >= 25)
col = 0;
Console.SetCursorPosition(row, col++);
break;
case 4:
if (col - 1 <= 0)
col = 24;
Console.SetCursorPosition(row, col--);
break;
}
}
嘗試Console.Clear();在寫之前 – raym0nd