ここに新しい C#er があります。コンソール アプリでテキスト ベースのアドベンチャーを作成しています。「map」と入力すると、現在の場所を示す X が付いた地図が表示されるマップ コマンドを作成しました。Int 変数 xCoordinate と yCoordinate は、マップ上のキャラクターの位置を表すために使用され、「北に行く」または「南に行く」などと入力するたびに 1 ずつ変化します。130 の異なる if ステートメントを作成しましたが、問題なく動作します。私の質問は、これを行うためのより効率的/簡単な方法があるかどうかです。私のコードは次のようになります。
public static void Map()
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("\n" + xCoordinate + ", " + yCoordinate);
Console.WriteLine("\nTowns are represented by a \"T\". Current location is shown as an \"X\".\n");
Console.ForegroundColor = ConsoleColor.DarkGray;
if ((xCoordinate == -7) && (yCoordinate == -4))
{
Console.Write("[ ][ ][ ][ ][ ][ ][ ][T][ ][ ][ ][ ][ ] 5\n");
Console.Write("[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] 4\n");
Console.Write("[ ][ ][ ][ ][T][ ][ ][ ][ ][T][ ][ ][ ] 3\n");
Console.Write("[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] 2\n");
Console.Write("[ ][ ][T][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] 1\n");
Console.Write("[T][ ][ ][ ][ ][ ][ ][T][ ][ ][ ][T][ ] 0\n");
Console.Write("[ ][ ][ ][ ][T][ ][ ][ ][ ][ ][ ][ ][ ]-1\n");
Console.Write("[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]-2\n");
Console.Write("[ ][ ][T][ ][ ][ ][T][ ][ ][ ][T][ ][ ]-3\n");
Console.Write("[X][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]-4\n");
Console.Write("-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5\n\n");
}
Console.ForegroundColor = ConsoleColor.White;
}
ここでも、X が別の場所にあるたびに、130 の異なる if ステートメントでマップを 130 回入力しています。これを行うためのより良い方法があると思いますが、わかりません。