メッセージがウィンドウのデフォルトの 0-79 X 幅を超えない限り、コンソール ウィンドウにメッセージを表示したいと考えています。私が持っているコードは次のようになります。
int xRemaining = 80 - mRobot.CurrentPos.X;
string message = "ID{0:d} Facing {1:s} at ({2:d},{3:d}) home is({4:d},{5:d})";
string formatMessage = string.Format(message,mRobot.ID,mRobot.getDir.ToString()/*...*/;
if(mRobot.CurrentPos.Y < 24)
{
if (xRemaining < formatMessage.Length)
{
Console.SetCursorPosition((mRobot.CurrentPos.X - xRemaining), mRobot.CurrentPos.Y+1);
}
else
{
Console.SetCursorPosition(mRobot.CurrentPos.X, mRobot.CurrentPos.Y + 1);
}
}
else
{
if(xRemaining < formatMessage.Length)
{
Console.SetCursorPosition((mRobot.CurrentPos.X-xRemaining), mRobot.CurrentPos.Y-1);
}
else
{
Console.SetCursorPosition(mRobot.CurrentPos.X, mRobot.CurrentPos.Y-1);
}
}
Console.Write(message,,mRobot.ID, mRobot.getDir.ToString(), mRobot.CurrentPos.X, mRobot.CurrentPos.Y,mRobot.Home.X,mRobot.Home.Y);
編集:string.Formatを使用しましたが、まだ次の行に実行されているようです:/