【发布时间】:2022-01-08 01:09:09
【问题描述】:
我是 C# 初学者,所以现在我的大部分代码都在 Main() 方法中。我想让我的程序更加面向对象,所以我想可靠地将代码从 Main 方法移动到另一个类(这样我也可以用其他程序来做)。
static void Main()
{
int xLentgh = 20;
int yLength = 20;
Map.MapBuilder(xLentgh,yLength);
int oldPositionX = 0;
int oldPositionY = 0;
int newPositionX = 0;
int newPositionY = 0;
if (oldPositionX == 0)
{
Map.WriteAt(".",newPositionX, newPositionY);
}
for (int i = 0; i < 100; i++)
{
ConsoleKeyInfo KeyStroke;
KeyStroke = Console.ReadKey();
switch (KeyStroke.Key)
{
case ConsoleKey.RightArrow:
{
if (newPositionX < xLentgh-1)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionX++;
}
break;
}
case ConsoleKey.LeftArrow:
{
if (newPositionX > 0)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionX--;
}
break;
}
case ConsoleKey.UpArrow:
{
if (newPositionY > 0)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionY--;
}
break;
}
case ConsoleKey.DownArrow:
{
if (newPositionY < yLength-1)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionY++;
}
break;
}
default: break;
}
Map.WriteAt(".",newPositionX, newPositionY);
Map.WriteAt(" ",oldPositionX, oldPositionY);
}
}
在这段代码中,我创建了一个“地图”,并在 for 循环中使用 switch 语句来“跟踪”光标的位置。如何在新类中编写此代码?我不知道从哪里开始
【问题讨论】:
-
目前还不清楚你想成为你班级的哪些部分。只是跟踪当前位置?地图大小?地图本身?一切?该类是否应该在其中包含 for 循环并从用户那里获取输入?...或者那会在循环之外,您只需告诉该类向上、向下、向左或向右移动?一些重大的设计决策需要在这里做出,我们无法为您做出这些决定......