コード例 #1
0
        public Schlange(int startX, int startY, ConsoleKey tasteHoch, ConsoleKey tasteRunter, ConsoleKey tasteLinks, ConsoleKey tasteRechts, ConsoleColor schlangenFarbe, int schlangenNummer)
        {
            startX = (startX % 2 == 0) ? startX : startX + 1;

            while (AlleObjekte.AktionVonObjektAnOrt(startX, startY) != SpielAktion.Nichts)
            {
                startX = Einstellungen.Random.Next(1, Spielfeld.Breite - 2);
                startY = Einstellungen.Random.Next(1, Spielfeld.Hoehe - 2);

                startX = (startX % 2 == 0) ? startX : startX + 1;
            }

            TasteHoch   = tasteHoch;
            TasteRunter = tasteRunter;
            TasteLinks  = tasteLinks;
            TasteRechts = tasteRechts;

            SchlangenFarbe = schlangenFarbe;

            SchlangenNummer = schlangenNummer;

            KoerperKoordinaten.Add(new int[2] {
                startX, startY
            });
            StartPosition[0] = startX;
            StartPosition[1] = startY;
            Program.WriteAt(startX, startY, (SchlangenNummer + 1).ToString(), SchlangenFarbe);
        }
コード例 #2
0
        public void Zuruecksetzen()
        {
            KoerperKoordinaten.RemoveRange(0, KoerperKoordinaten.Count);
            LetzteTaste = "";

            while (AlleObjekte.AktionVonObjektAnOrt(StartPosition[0], StartPosition[1]) != SpielAktion.Nichts)
            {
                StartPosition[0] = Einstellungen.Random.Next(1, Spielfeld.Breite - 2);
                StartPosition[1] = Einstellungen.Random.Next(1, Spielfeld.Hoehe - 2);

                StartPosition[0] = (StartPosition[0] % 2 == 0) ? StartPosition[0] : StartPosition[0] + 1;
            }

            KoerperKoordinaten.Add(new int[2] {
                StartPosition[0], StartPosition[1]
            });
            StartPosition[0] = StartPosition[0];
            StartPosition[1] = StartPosition[1];
            Program.WriteAt(StartPosition[0], StartPosition[1], (SchlangenNummer + 1).ToString(), SchlangenFarbe);
        }
コード例 #3
0
        private void SchrittAktion(int neuerKoerperPunktX, int neuerKoerperPunktY, string symbol)
        {
            SpielAktion aktionAnNeuerStelle = AlleObjekte.AktionVonObjektAnOrt(neuerKoerperPunktX, neuerKoerperPunktY);

            if (KoerperKoordinaten.Count > 1 && aktionAnNeuerStelle == SpielAktion.Nichts)
            {
                Program.WriteAt(KoerperKoordinaten[0][0], KoerperKoordinaten[0][1], " ");
                KoerperKoordinaten.RemoveAt(0);
            }
            else if (aktionAnNeuerStelle == SpielAktion.KuerzerWerden)
            {
                if (KoerperKoordinaten.Count < 3)
                {
                    Einstellungen.InGame = false;
                    return;
                }
                else
                {
                    for (int i = 0; i < 2; i++)
                    {
                        Program.WriteAt(KoerperKoordinaten[0][0], KoerperKoordinaten[0][1], " ");
                        KoerperKoordinaten.RemoveAt(0);
                    }
                    AlleObjekte.ObjektAnAndereStelle(neuerKoerperPunktX, neuerKoerperPunktY);
                }
            }
            else if (aktionAnNeuerStelle == SpielAktion.LaengerWerden)
            {
                AlleObjekte.ObjektAnAndereStelle(neuerKoerperPunktX, neuerKoerperPunktY);
                LaengsteLaenge = KoerperKoordinaten.Count + 1;
            }
            else if (aktionAnNeuerStelle == SpielAktion.Sterben)
            {
                Einstellungen.InGame = false;
                return;
            }
            KoerperKoordinaten.Add(new int[2] {
                neuerKoerperPunktX, neuerKoerperPunktY
            });
            Program.WriteAt(neuerKoerperPunktX, neuerKoerperPunktY, symbol, SchlangenFarbe);
        }
コード例 #4
0
        public static void Rendern()
        {
            Console.Clear();

            ConsoleColor begrenzungFarbe = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), Einstellungen.ini.Read("farbeBegrenzung", "Spielfeld"));

            #region Begrenzungen generieren
            for (int i = 1; i < Hoehe - 1; i++)
            {
                System.Threading.Thread.Sleep(1);
                Program.WriteAt(0, i, "║", begrenzungFarbe);
                Program.WriteAt(Breite - 1, Hoehe - i - 1, "║", begrenzungFarbe);
            }
            Program.WriteAt(0, Hoehe - 1, "╚", begrenzungFarbe);
            Program.WriteAt(Breite - 1, 0, "╗", begrenzungFarbe);

            for (int i = 1; i < Breite - 1; i++)
            {
                System.Threading.Thread.Sleep(1);
                Program.WriteAt(Breite - i - 1, 0, "═", begrenzungFarbe);
                Program.WriteAt(i, Hoehe - 1, "═", begrenzungFarbe);
            }
            Program.WriteAt(0, 0, "╔", begrenzungFarbe);
            Program.WriteAt(Breite - 1, Hoehe - 1, "╝", begrenzungFarbe);
            #endregion

            AlleObjekte.ObjektListe.RemoveRange(0, AlleObjekte.ObjektListe.Count);

            AlleObjekte.MengeHinzufuegen(Convert.ToInt32(Einstellungen.ini.Read("anzahlHindernisseSterben", "Spielfeld")), SpielAktion.Sterben);
            AlleObjekte.MengeHinzufuegen(Convert.ToInt32(Einstellungen.ini.Read("anzahlHindernisseLaengerWerden", "Spielfeld")), SpielAktion.LaengerWerden);
            AlleObjekte.MengeHinzufuegen(Convert.ToInt32(Einstellungen.ini.Read("anzahlHindernisseKuerzerWerden", "Spielfeld")), SpielAktion.KuerzerWerden);
            AlleObjekte.ObjekteRendern();

            for (int i = 0; i < Einstellungen.Schlangen.Count; i++)
            {
                Einstellungen.Schlangen[i].Zuruecksetzen();
            }
        }