C#コンソールでカーソルの位置を指定して文字を表示

C# コンピュータ
C#

C#のコンソールでカーソル位置を指定するプロパティがあるようですので、試してみました。

サンプルプログラム


using System;
using System.Threading;

class Sample
{
    public static void Main()
    {
       ConsoleKeyInfo cki;

        Console.Clear();
        int x = 1;
        int y = 1;

        Console.CursorLeft = x;
        Console.CursorTop = y;

        int xx = 1;
        int yy = 1;

       do {
           while (Console.KeyAvailable == false)
           {
                //Console.CursorLeft = x;
                //Console.CursorTop = y;
                //Console.Write(" ");
                
                x = x + xx;
                y = y + yy;

                if (x > 79)
                {
                    xx = -1;
                    x = 79;
                }
                if (x < 1)
                {
                    xx = 1;
                    x = 1;
                }
                if (y > 35)
                {
                    yy = -1;
                    y = 35;
                }
                if (y < 1)
                {
                    yy = 1;
                    y = 1;
                }

                Console.CursorLeft = x;
                Console.CursorTop = y;

                Console.Write("A");


               Thread.Sleep(1); // Loop until input is entered.
            }

           cki = Console.ReadKey(true);
        } while(cki.Key != ConsoleKey.X);
        Console.CursorLeft = 1;
        Console.CursorTop = 36;
    }
}

実行結果


実行するとコンソール上に”A”の文字が座標を指定して表示され、格子状の模様を作ります。
終了する場合”X”キーを押してください。
ちなみに、Console.CursoLeftはConsole.Writeで表示した文字数分だけ値が増えます。

コメント