public void setRobo(Robo robo) { if (robo.getX() > this.x - 1 || robo.getY() > this.y - 1 || robo.getX() < 0 || robo.getY() < 0) // { Console.WriteLine("Robo em posição invalida"); Environment.Exit(2); } this.robo = robo; }
static void Main(string[] args) { string[] numeros; Console.Write("Digite respectivamente os tamanhos X e Y na mesma linha: ");// numeros = Regex.Split(Console.ReadLine(), @"\D+"); int tamX = Int32.Parse(numeros[0]); int tamY = Int32.Parse(numeros[1]); // nova horta Horta horta = new Horta(tamX, tamY); Console.Write("Posicao inicial\t\t: "); // ex de entradas: 4 4 (5,1) ( 0 , 0 ) numeros = Regex.Split(Console.ReadLine(), @"\D+"); int initX = Int32.Parse(numeros[0]); int initY = Int32.Parse(numeros[1]); Console.Write("Orientacao inicial\t: "); // N L S O char initDir = Console.ReadLine().Trim().ToCharArray()[0]; Robo robo = new Robo(initX, initY, initDir); horta.setRobo(robo); do { Console.WriteLine("Mínimo de canteiros: 1"); Console.Write("Canteiros a irrigar: ");// ex de entradas: 4 4 (5,1) ( 0 , 0 ) numeros = Regex.Split(Console.ReadLine(), @"\D+"); } while (numeros.Length < 2); for (int i = 0; i < numeros.Length - 1; i += 2) // somente adicionará canteiros com X e Y, caso tenha qtd impar, ignora o ultimo n° { horta.addCanteiro(Int32.Parse(numeros[i]), Int32.Parse(numeros[i + 1])); } foreach (Canteiro c in horta.getCanteiros()) { robo.achaCaminho(c.getX(), c.getY()); } Console.WriteLine(robo.getCaminho()); Console.WriteLine("Orientacao final: {0}", robo.getOrientacao()); }