public static void EinzelnHinzufuegen(int positionX, int positionY, SpielAktion aktionBeiBeruehrung) { positionX = (positionX % 2 == 0) ? positionX : positionX + 1; if (AktionVonObjektAnOrt(positionX, positionY) == SpielAktion.Nichts) { ObjektListe.Add(new SpielObjekt(positionX, positionY, aktionBeiBeruehrung)); } }
public static void MengeHinzufuegen(int anzahl, SpielAktion aktion, bool direktRendern = false) { for (int i = 0; i < anzahl; i++) { int randomNumberX; int randomNumberY; do { randomNumberX = Einstellungen.Random.Next(1, Spielfeld.Breite - 2); randomNumberY = Einstellungen.Random.Next(1, Spielfeld.Hoehe - 2); randomNumberX = (randomNumberX % 2 == 0) ? randomNumberX : randomNumberX + 1; } while (AktionVonObjektAnOrt(randomNumberX, randomNumberY) != SpielAktion.Nichts); ObjektListe.Add(new SpielObjekt(randomNumberX, randomNumberY, aktion)); if (direktRendern) { switch (aktion) { case SpielAktion.Sterben: Program.WriteAt( randomNumberX, randomNumberY, "X", (ConsoleColor)Enum.Parse(typeof(ConsoleColor), Einstellungen.ini.Read("farbeHindernisseSterben", "Spielfeld")) ); break; case SpielAktion.LaengerWerden: Program.WriteAt( randomNumberX, randomNumberY, "X", (ConsoleColor)Enum.Parse(typeof(ConsoleColor), Einstellungen.ini.Read("farbeHindernisseLaengerWerden", "Spielfeld")) ); break; case SpielAktion.KuerzerWerden: Program.WriteAt( randomNumberX, randomNumberY, "X", (ConsoleColor)Enum.Parse(typeof(ConsoleColor), Einstellungen.ini.Read("farbeHindernisseKuerzerWerden", "Spielfeld")) ); break; default: break; } } } }
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 SpielObjekt(int positionX, int positionY, SpielAktion aktionBeiBeruehrung) { PositionX = positionX; PositionY = positionY; Aktion = aktionBeiBeruehrung; }