Ich versuche, eine Konsolenanwendung in C# zu schreiben, die die Anzahl der eindeutigen Blöcke zählt, durch die sich ein Roboter in einem Raster auf einer Etage bewegt. Die Eingabe nimmt Anweisungen für die Bewegung unter Verwendung der vier Kompasspunkte wie: N, E, SW an.C# Konsolenanwendungsgitterberechnung
Die Anwendung verarbeitet die Anzahl der Blöcke, durch die der Roboter einmal fährt, wenn die X-Koordinate und die Y-Koordinate von Der Weg des Roboters kann jederzeit kreuzen, dieser Block wird einmal und nicht zweimal gezählt. Wenn zum Beispiel der Roboter N4, 2E, 2S und 4W fährt, gibt es einen Schnittpunkt von x und y auf dem zweiten Block, den der Roboter zu Beginn seiner Bewegung zurückgelegt hat.
Dies ist, was ich bisher:
static void Main(string[] args)
{
//List<string> movements = new List<string>();
int x1 = 0;
int y1 = 0;
int x2 = 0;
int y2 = 0;
int x3 = 0;
int y3 = 0;
int x4 = 0;
int y4 = 0;
int N, S, E, W, Total;
string coordinate1, coordinate2, coordinate3, coordinate4;
Console.Write("Enter North : ");
N = int.Parse(Console.ReadLine());
if(N != 0)
{
x1 += 0;
y1 += N;
}
coordinate1 = "(" + x1 + "," + y1 + ")";
Console.Write("Enter East: ");
E = int.Parse(Console.ReadLine());
if (E != 0)
{
y3 += 0;
x3 += E;
}
coordinate3 = "(" + x3 + "," + y3 + ")";
Console.Write("Enter South: ");
S = int.Parse(Console.ReadLine());
if (S != 0)
{
x2 += 0;
y2 -= S;
}
coordinate2 = "(" + x2 + "," + y2 + ")";
Console.Write("Enter West: ");
W = int.Parse(Console.ReadLine());
if (W != 0)
{
y4 += 0;
x4 -= W;
}
coordinate4 = "(" + x4 + "," + y4 + ")";
if (coordinate1 == coordinate2|| coordinate1== coordinate3 || coordinate1 == coordinate4 || coordinate2 == coordinate3 || coordinate2 == coordinate4 || coordinate3 ==coordinate4)
{
Total = (N + S + E + W) - 1 ;
Console.WriteLine("The total Blocks travelled are " + Total);
}
else
{
Total = N + S + E + W;
Console.WriteLine("The total Blocks travelled are " + Total);
}
}
Der beste Weg, dies zu erreichen ist, fragen Sie Ihren Lehrer oder TA. Niemand hier wird Code von Grund auf für Sie schreiben. Nicht wissen, wie viel Sie wissen, es ist schwer, Zeiger zu bieten – pm100
@ pm100 Ich habe die Frage mit etwas von dem Code I'v abgeschlossen, konnte ich eine grundlegende Berechnung der Eingänge tun, ich bin mir nicht sicher, wie es geht Weiterleiten mit, wie ermittelt werden kann, ob zuvor ein Block übergeben wurde. –
ist die Eingabe ("die Sequenz von Schritten, die der Roboter nimmt") eine willkürliche Liste von Bewegungen, z.B. 'N7 E2 S4 E9 N6 W14' oder, wie Ihr Code angibt, nur ein Offset in jeder der vier Richtungen? – HABO