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