예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("h steht für die Position des Heldens der die Prinzessin retten will. p steht für die Position der Prinzessin.");
            Console.WriteLine("Insgesamt darf man je einmal den Buchstaben h und einmal den Buchstaben p verwenden.");
            Console.WriteLine("Die Buchstaben müssen klein geschrieben sein!");
            Console.WriteLine("Geben sie nun ein wie breit ihre Zeile sein soll(3-10)");

            int breite = 0;

            while (breite == 0)
            {
                string breiteAlsText = Console.ReadLine();
                try
                {
                    breite = int.Parse(breiteAlsText);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Ungültige Eingabe");
                }
            }
            Point h = new Point();
            Point p = new Point();

            for (int y = 0; y < 3; y++)
            {
                string zeile = Console.ReadLine();
                for (int x = 0; x < 3; x++)
                {
                    char zeichen = zeile[x];
                    if (zeichen == 'h')
                    {
                        h = new Point(x, y);
                        //Ort von m gefunden
                    }
                    else if (zeichen == 'p')
                    {
                        p = new Point(x, y);
                        // Ort von p gefunden
                    }
                    else if (zeichen != '-')
                    {
                        Console.WriteLine("Ungültige Zeichen vorhanden, bitte Zeile erneut eingeben!");
                        y--;
                        break;
                    }
                }
            }
            Console.WriteLine("H ist an der Stelle: " + h.ToString());
            Console.WriteLine("P ist an der Stelle: " + p.ToString());
            Point weg = new Point(p.X - h.X, p.Y - h.Y);

            Console.WriteLine("Der Weg ist: " + weg.ToString());

            if (weg.X < 0)
            {
                for (int x = 0; x < -weg.X; x++)
                {
                    Console.WriteLine("Einmal nach Links");
                }
            }
            else if (weg.X > 0)
            {
                for (int x = 0; x < weg.X; x++)
                {
                    Console.WriteLine("Einmal nach Rechts");
                }
            }
            if (weg.Y < 0)
            {
                for (int y = 0; y < -weg.Y; y++)
                {
                    Console.WriteLine("Einmal nach Oben");
                }
            }
            else if (weg.Y > 0)
            {
                for (int y = 0; y < weg.Y; y++)
                {
                    Console.WriteLine("Einmal nach Unten");
                }
            }
            Console.ReadKey();
        }