Example #1
0
        public static void Hauptmenu()
        {
            while (true)
            {
                Einstellungen.InGame = false;
                Console.Clear();
                ConsoleKeyInfo gedrueckteTaste;

                //Begrüßungstext oder Game Over Text
                if (Einstellungen.ErsterStart)
                {
                    #region Begrüßungs Text
                    Program.WriteAt((Breite / 2) - 21, 3, "╔══════════════════════════════════════════╗", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 21, 4, "║███████╗███╗   ██╗ █████╗ ██╗  ██╗███████╗║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 21, 5, "║██╔════╝████╗  ██║██╔══██╗██║ ██╔╝██╔════╝║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 21, 6, "║███████╗██╔██╗ ██║███████║█████╔╝ █████╗  ║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 21, 7, "║╚════██║██║╚██╗██║██╔══██║██╔═██╗ ██╔══╝  ║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 21, 8, "║███████║██║ ╚████║██║  ██║██║  ██╗███████╗║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 21, 9, "║╚══════╝╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 21, 10, "╚══════════════════════════════════════════╝", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    #endregion
                }
                else
                {
                    #region Game Over Text
                    Program.WriteAt((Breite / 2) - 40, 3, "╔═══════════════════════════════════════════════════════════════════════════════╗", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 40, 4, "║  ██████╗  █████╗ ███╗   ███╗███████╗     ██████╗ ██╗   ██╗███████╗██████╗ ██╗ ║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 40, 5, "║ ██╔════╝ ██╔══██╗████╗ ████║██╔════╝    ██╔═══██╗██║   ██║██╔════╝██╔══██╗██║ ║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 40, 6, "║ ██║  ███╗███████║██╔████╔██║█████╗      ██║   ██║██║   ██║█████╗  ██████╔╝██║ ║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 40, 7, "║ ██║   ██║██╔══██║██║╚██╔╝██║██╔══╝      ██║   ██║╚██╗ ██╔╝██╔══╝  ██╔══██╗╚═╝ ║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 40, 8, "║ ╚██████╔╝██║  ██║██║ ╚═╝ ██║███████╗    ╚██████╔╝ ╚████╔╝ ███████╗██║  ██║██╗ ║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 40, 9, "║  ╚═════╝ ╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝     ╚═════╝   ╚═══╝  ╚══════╝╚═╝  ╚═╝╚═╝ ║", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    Program.WriteAt((Breite / 2) - 40, 10, "╚═══════════════════════════════════════════════════════════════════════════════╝", ConsoleColor.Red, ConsoleColor.DarkBlue);
                    #endregion
                }

                Einstellungen.ErsterStart = false;

                #region Menü Auswahlmöglichkeiten
                Program.WriteAt((Breite / 2) - 16, 13, "╔═══╦═══════════════════════════╗");
                Program.WriteAt((Breite / 2) - 16, 14, "║ 1 ║  Neues Spiel              ║");
                Program.WriteAt((Breite / 2) - 16, 15, "╚═══╩═══════════════════════════╝");
                Program.WriteAt((Breite / 2) - 16, 16, "╔═══╦═══════════════════════════╗");
                Program.WriteAt((Breite / 2) - 16, 17, "║ 2 ║  Einstellungen            ║");
                Program.WriteAt((Breite / 2) - 16, 18, "╚═══╩═══════════════════════════╝");
                Program.WriteAt((Breite / 2) - 16, 19, "╔═══╦═══════════════════════════╗");
                Program.WriteAt((Breite / 2) - 16, 20, "║ X ║  Beenden                  ║");
                Program.WriteAt((Breite / 2) - 16, 21, "╚═══╩═══════════════════════════╝");
                #endregion

                #region Highscores
                Program.WriteAt((Breite / 2) - 12, 24, "Highscores:");
                for (int i = 0; i < Einstellungen.Schlangen.Count; i++)
                {
                    if (Einstellungen.Schlangen[i].LaengsteLaenge > Convert.ToInt32(Einstellungen.ini.Read("highscore", $"Schlange{i}")))
                    {
                        Einstellungen.ini.Write("highscore", $"{Einstellungen.Schlangen[i].LaengsteLaenge.ToString()}", $"Schlange{i}");
                    }
                    Program.WriteAt((Breite / 2) - 12, 25 + i, $"Schlange {i + 1} Highscore: {Einstellungen.ini.Read("highscore", $"Schlange{i}")}", Einstellungen.Schlangen[i].SchlangenFarbe);
                }
                #endregion

                #region Created by Text
                Program.WriteAt(Breite - 20, Hoehe - 1, "Created by KarlKeu00", ConsoleColor.DarkGray);
                #endregion

                gedrueckteTaste = Console.ReadKey();

                switch (gedrueckteTaste.Key)
                {
                    #region X
                case ConsoleKey.X:
                case ConsoleKey.Escape:
                    return;

                    #endregion
                    #region 1
                case ConsoleKey.D1:
                case ConsoleKey.NumPad1:
                    Spielfeld.SpielStarten();
                    break;

                    #endregion
                    #region 2
                case ConsoleKey.D2:
                case ConsoleKey.NumPad2:
                    EinstellungenMenu();
                    break;

                    #endregion
                    #region Alles andere
                default:
                    Program.WriteAt(0, 0, " ");
                    Console.Beep();
                    break;
                    #endregion
                }
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            #region ini-Datei erstellen, wenn sie nicht existiert
            if (!System.IO.File.Exists($@"{Environment.GetEnvironmentVariable("userprofile")}\Documents\Cs_Console_Snake_Einstellungen.ini"))
            {
                Einstellungen.ini.Write("hoehe", "50", "Spielfeld");
                Einstellungen.ini.Write("breite", "100", "Spielfeld");
                Einstellungen.ini.Write("titel", "Das Schlangenspiel", "Spielfeld");
                Einstellungen.ini.Write("anzahlHindernisseSterben", "20", "Spielfeld");
                Einstellungen.ini.Write("farbeHindernisseSterben", "Red", "Spielfeld");
                Einstellungen.ini.Write("anzahlHindernisseLaengerWerden", "50", "Spielfeld");
                Einstellungen.ini.Write("farbeHindernisseLaengerWerden", "DarkGreen", "Spielfeld");
                Einstellungen.ini.Write("anzahlHindernisseKuerzerWerden", "10", "Spielfeld");
                Einstellungen.ini.Write("farbeHindernisseKuerzerWerden", "DarkBlue", "Spielfeld");
                Einstellungen.ini.Write("farbeBegrenzung", "Red", "Spielfeld");

                Einstellungen.ini.Write("startPositionX", "50", "Schlange0");
                Einstellungen.ini.Write("startPositionY", "25", "Schlange0");
                Einstellungen.ini.Write("tasteHoch", "UpArrow", "Schlange0");
                Einstellungen.ini.Write("tasteRunter", "DownArrow", "Schlange0");
                Einstellungen.ini.Write("tasteLinks", "LeftArrow", "Schlange0");
                Einstellungen.ini.Write("tasteRechts", "RightArrow", "Schlange0");
                Einstellungen.ini.Write("schlangenFarbe", "Yellow", "Schlange0");
                Einstellungen.ini.Write("highscore", "0", "Schlange0");
            }
            #endregion

            #region Spielfeld vorbereiten
            Einstellungen.AktuellesSpielfeld = new Spielfeld();
            #endregion

            #region Schlangen einlesen und erstellen (Maximal 10 Schlangen)
            for (int i = 0; i < 10; i++)   //10 Maximale Spieler
            {
                if (Einstellungen.ini.KeyExists("startPositionX", $"Schlange{i}") &&
                    Einstellungen.ini.KeyExists("startPositionY", $"Schlange{i}") &&
                    Einstellungen.ini.KeyExists("tasteHoch", $"Schlange{i}") &&
                    Einstellungen.ini.KeyExists("tasteRunter", $"Schlange{i}") &&
                    Einstellungen.ini.KeyExists("tasteLinks", $"Schlange{i}") &&
                    Einstellungen.ini.KeyExists("tasteRechts", $"Schlange{i}") &&
                    Einstellungen.ini.KeyExists("schlangenFarbe", $"Schlange{i}"))
                {
                    Einstellungen.Schlangen.Add(new Schlange(
                                                    Convert.ToInt32(Einstellungen.ini.Read("startPositionX", $"Schlange{i}")),
                                                    Convert.ToInt32(Einstellungen.ini.Read("startPositionY", $"Schlange{i}")),
                                                    (ConsoleKey)Enum.Parse(typeof(ConsoleKey), Einstellungen.ini.Read("tasteHoch", $"Schlange{i}")),
                                                    (ConsoleKey)Enum.Parse(typeof(ConsoleKey), Einstellungen.ini.Read("tasteRunter", $"Schlange{i}")),
                                                    (ConsoleKey)Enum.Parse(typeof(ConsoleKey), Einstellungen.ini.Read("tasteLinks", $"Schlange{i}")),
                                                    (ConsoleKey)Enum.Parse(typeof(ConsoleKey), Einstellungen.ini.Read("tasteRechts", $"Schlange{i}")),
                                                    (ConsoleColor)Enum.Parse(typeof(ConsoleColor), Einstellungen.ini.Read("schlangenFarbe", $"Schlange{i}")),
                                                    i
                                                    ));
                }
                else
                {
                    break;
                }
            }

            if (Einstellungen.Schlangen.Count < 1)
            {
                Environment.Exit(1);
            }
            #endregion

            #region Konsole vorbereiten
            Console.CursorVisible = false;
            Console.Clear();
            #endregion

            Spielfeld.Hauptmenu();
        }