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); } } }
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); }