Esempio n. 1
0
        static void Main()
        {
            Console.WriteLine("Wie gross soll das Spielfeld sein?");
            int xMax = int.Parse(Console.ReadLine());

            Console.WriteLine("Wie gross ist die Wahrscheinlichkeit, dass eine tote Zelle erschaffen wird?");
            int percent = int.Parse(Console.ReadLine());

            if (percent > 100)
            {
                Console.WriteLine("Wahrscheinlichkeit zu hoch! Starte neu!");
                Console.ReadKey();
                Environment.Exit(0x0);
            }


            Starter starter = new Starter();

            Cell[,] spielfeld = starter.start(xMax);
            Cell[,] pivot     = starter.start(xMax);

            spielfeld = starter.fill(spielfeld, percent);

            int round = 1;

            while (true)
            {
                Console.Clear();
                Zeichner.Zeichnen(spielfeld, round);
                Console.WriteLine("Es leben " + Logik.countAlive(spielfeld) + " Zellen.");
                pivot     = spielfeld;
                spielfeld = Starter.spielzug(spielfeld, xMax, percent);
                round++;
                Thread.Sleep(1000);
                if (Logik.checkIfDone(spielfeld, pivot))
                {
                    Console.WriteLine("Spiel beendet.");
                    Environment.Exit(0x0);
                }
            }
        }
Esempio n. 2
0
        public static Cell[,] spielzug(Cell[,] spielfeld, int xMax, int percent)
        {
            Starter starter = new Starter();

            Cell[,] spielfeldNeu = starter.start(xMax);
            spielfeldNeu         = starter.fill(spielfeldNeu, percent);

            xMax = xMax - 1;
            for (int x = 0; x < spielfeld.GetLength(0); x++)
            {
                for (int y = 0; y < spielfeld.GetLength(0); y++)
                {
                    //Oben Links
                    if (x == 0 && y == 0)
                    {
                        spielfeldNeu[0, 0].Status = Logik.topLeftCorner(spielfeld);
                    }
                    //Unten Rechts
                    else if (x == xMax && y == xMax)
                    {
                        spielfeldNeu[x, y].Status = Logik.botRightCorner(spielfeld, x);
                    }
                    //Unten Links
                    else if (x == xMax && y == 0)
                    {
                        spielfeldNeu[xMax, 0].Status = Logik.botLeftCorner(spielfeld, x);
                    }

                    // oben Rechts
                    else if (x == 0 && y == xMax)
                    {
                        spielfeldNeu[0, xMax].Status = Logik.topRightCorner(spielfeld, y);
                    }

                    //linke Spalte
                    else if (x != 0 && y == 0 && x != xMax)
                    {
                        spielfeldNeu[x, y].Status = Logik.leftColumn(spielfeld, x, y);
                    }

                    //rechte Spalte
                    else if (x != 0 && y == xMax)
                    {
                        spielfeldNeu[x, y].Status = Logik.rightColumn(spielfeld, x, y);
                    }

                    //oben
                    else if (x == 0 && y != 0 && y != xMax)
                    {
                        spielfeldNeu[x, y].Status = Logik.topRow(spielfeld, x, y);
                    }

                    //unten
                    else if (x == xMax && y != 0)
                    {
                        spielfeldNeu[x, y].Status = Logik.botRow(spielfeld, x, y);
                    }

                    else
                    {
                        spielfeldNeu[x, y].Status = Logik.fullCircle(spielfeld, x, y);
                    }
                }
            }

            return(spielfeldNeu);
        }