Tävlingsprogrammering/Uppgifter/Leksaksroboten
Utseende
Lösning
[redigera]Lösning i c#
[redigera]using System; using System.Collections.Generic;
namespace problem_4 { class Program { static void Main(string[] args) { Console.WriteLine("Antal instruktioner ? "); int antalInstruktioner = int.Parse(Console.ReadLine()); object[] inputs = new object[antalInstruktioner]; for(int i = 0; i < antalInstruktioner; i++) { Console.WriteLine("Instruktion " + (i + 1) + " ? "); inputs[i] = Console.ReadLine(); } int x = 0; int y = 0; int grader = 0; for(int i = 0; i< antalInstruktioner; i++) { if (inputs[i].ToString() == "H") { grader += 90; } else if(inputs[i].ToString() == "V") { grader -= 90; } else { if(grader == 90 || grader == -270) { x += int.Parse(inputs[i].ToString()); } else if(grader == 180 || grader == -180) { y -= int.Parse(inputs[i].ToString()); } else if(grader == 270 || grader == -90) { x -= int.Parse(inputs[i].ToString()); } else if(grader == 0 || grader == 360 || grader == -360) { y += int.Parse(inputs[i].ToString()); grader = 0; } } } List<object> outputs = cleanInputs(x, y); Console.WriteLine("Ny List :"); for(int i = 0; i<outputs.Count; i++) { Console.WriteLine(outputs[i].ToString()); } } static List<object> cleanInputs(int x,int y) { List<object> instruktioner = new List<object>(); if(y < 0) { if(x < 0) { instruktioner.Add("V"); instruktioner.Add(0 - x); instruktioner.Add("V"); instruktioner.Add(y*-1); } else if(x > 0) { instruktioner.Add("H"); instruktioner.Add(x); instruktioner.Add("H"); instruktioner.Add(y*-1); } else if(x == 0) { instruktioner.Add("V"); instruktioner.Add("V"); instruktioner.Add(y*-1); } } else if(y > 0) { if(x < 0) { instruktioner.Add(y); instruktioner.Add("V"); instruktioner.Add(x*-1); } else if(x > 0) { instruktioner.Add(y); instruktioner.Add("H"); instruktioner.Add(x); } else if(x == 0) { instruktioner.Add(y); } } else if(y == 0) { if(x > 0) { instruktioner.Add("H"); instruktioner.Add(x); } else if(x < 0) { instruktioner.Add("V"); instruktioner.Add(x*-1); } } return instruktioner; } } }