static void Main(string[] args) { //Spielfeld SpielFeld spielFeld = new SpielFeld(120, 30, '+'); spielFeld.ZeichnenWaende(); //Schlange Point point = new Point(3, 15, '*'); Schlange schlange = new Schlange(point, 3, Richtung.RECHTS); //Nahrung Nahrung nahrung = new Nahrung(); Point pNahrung = nahrung.Erzeugen(spielFeld, '$'); pNahrung.Zeichnen(); Console.ReadKey(); while (true) { if (Console.KeyAvailable) { ConsoleKeyInfo taste = Console.ReadKey(); schlange.Steuern(taste); } Thread.Sleep(100); schlange.Zeichnen(); schlange.Bewegen(); } }
public Point Erzeugen(SpielFeld spielfeld, char nahrungSymbol) { int maxPositionX = spielfeld.GetBreite(); int maxPositionY = spielfeld.GetHohe(); int randomPositionX = random.Next(1, maxPositionX); int randomPoitionY = random.Next(1, maxPositionY); return(new Point(randomPositionX, randomPoitionY, nahrungSymbol)); }
public void Test2Fb_SpielerAnzahl() { const string Feld = "......." + "......." + "......." + "....x.." + "....o.." + ".x..x.."; var feld = new SpielFeld(Feld); }
public void Test1F_Leer() { const string Feld = "......." + "......." + "......" + "......." + "......." + "......."; var feld = new SpielFeld(Feld); }
public void Test_1_EinerVoll() { var feld = new SpielFeld(Feld); for (int p1 = 0; p1 < SpielFeld.FeldAnzahl; p1++) { feld.feld[p1] = 1; ScanFalse(feld); feld.feld[p1] = 0; } }
public void Test1R_Leer() { const string Feld = "......." + "......." + "......." + "......." + "......." + "......."; var feld = new SpielFeld(Feld); Assert.AreEqual(Feld, GetStr(feld)); }
public void Test_2_ZweierVoll() { var feld = new SpielFeld(Feld); for (int p2 = 0; p2 < SpielFeld.FeldAnzahl; p2++) { feld.feld[p2] = 1; for (int p1 = 0; p1 < p2; p1++) { feld.feld[p1] = 1; ScanFalse(feld); feld.feld[p1] = 0; } feld.feld[p2] = 0; } }
public void Test2Rc_SpielerAnzahl() { const string Feld = "......." + "......." + "......." + "....x.." + ".x..o.." + ".o..x.."; var feld = new SpielFeld(Feld); Assert.AreEqual(Feld, GetStr(feld)); }
/// <summary> /// gibt das Spielfeld als Zeichenkette zurück (gleicher Aufbau wie die Test-Felder) /// </summary> /// <param name="feld">Spielfeld, was zurück gegeben werden soll</param> /// <returns>gefilterte Zeichenkette des Spielfeldes</returns> static string GetStr(SpielFeld feld) { return feld.ToString().Replace("\r", "").Replace("\n", "").ToLower(); }
public void Test3Rd_FeldLücken() { const string Feld = "oxox.xo" + "oxoxoxo" + "oxoxoxo" + "xoxoxox" + "xoxoxox" + "xoxoxox"; var feld = new SpielFeld(Feld); Assert.AreEqual(Feld, GetStr(feld)); }
public void Test3Rc_FeldLücken() { const string Feld = "......." + "......." + "......x" + "...o..x" + ".xox..x" + ".xxoooo"; var feld = new SpielFeld(Feld); Assert.AreEqual(Feld, GetStr(feld)); }
public void Test3Fd_FeldLücken() { const string Feld = "oxoxoxo" + "oxoxoxo" + "oxox.xo" + "xoxoxox" + "xoxoxox" + "xoxoxox"; var feld = new SpielFeld(Feld); }
public void Test3Fc_FeldLücken() { const string Feld = "......o" + "......." + "......." + "......." + ".xox..." + ".xxo..."; var feld = new SpielFeld(Feld); }
static void ScanFalse(SpielFeld feld) { for (int p = 0; p < SpielFeld.FeldAnzahl; p++) { Assert.IsFalse(feld.CheckGewinn(p)); } }
public void Test2Rd_SpielerAnzahl() { const string Feld = "oxoxoxo" + "oxoxoxo" + "oxoxoxo" + "xoxoxox" + "xoxoxox" + "xoxoxox"; var feld = new SpielFeld(Feld); Assert.AreEqual(Feld, GetStr(feld)); }
public void setSpielFeld(SpielFeld spielFeld, int x, int y) { _spielfelder[x][y] = spielFeld; }
static void ScanTrue(SpielFeld feld, int p1, int p2, int p3, int p4) { Assert.IsTrue(feld.CheckGewinn(p1)); Assert.IsTrue(feld.CheckGewinn(p2)); Assert.IsTrue(feld.CheckGewinn(p3)); Assert.IsTrue(feld.CheckGewinn(p4)); for (int p = 0; p < SpielFeld.FeldAnzahl; p++) { if (p == p1 || p == p2 || p == p3 || p == p4) continue; Assert.IsFalse(feld.CheckGewinn(p)); } }
static void ScanTrueOptional(SpielFeld feld, int p1, int o1, int o2, int o3) { Assert.IsTrue(feld.CheckGewinn(p1)); for (int p = 0; p < SpielFeld.FeldAnzahl; p++) { if (p == p1 || p == o1 || p == o2 || p == o3) continue; Assert.IsFalse(feld.CheckGewinn(p)); } }
public void Test_4_ViererVoll() { var feld = new SpielFeld(Feld); for (int p4 = 0; p4 < SpielFeld.FeldAnzahl; p4++) { feld.feld[p4] = 1; for (int p3 = 0; p3 < p4; p3++) { feld.feld[p3] = 1; for (int p2 = 0; p2 < p3; p2++) { feld.feld[p2] = 1; for (int p1 = 0; p1 < p2; p1++) { feld.feld[p1] = 1; if (p1 + 1 == p2 && p2 + 1 == p3 && p3 + 1 == p4 && p1 % SpielFeld.FeldBreite < p4 % SpielFeld.FeldBreite) { ScanTrue(feld, p1, p2, p3, p4); } else if (p1 + SpielFeld.FeldBreite == p2 && p2 + SpielFeld.FeldBreite == p3 && p3 + SpielFeld.FeldBreite == p4) { ScanTrueOptional(feld, p1, p2, p3, p4); } else if (p1 + SpielFeld.FeldBreite + 1 == p2 && p2 + SpielFeld.FeldBreite + 1 == p3 && p3 + SpielFeld.FeldBreite + 1 == p4 && p1 % SpielFeld.FeldBreite < p4 % SpielFeld.FeldBreite) { ScanTrue(feld, p1, p2, p3, p4); } else if (p1 + SpielFeld.FeldBreite - 1 == p2 && p2 + SpielFeld.FeldBreite - 1 == p3 && p3 + SpielFeld.FeldBreite - 1 == p4 && p1 % SpielFeld.FeldBreite > p4 % SpielFeld.FeldBreite) { ScanTrue(feld, p1, p2, p3, p4); } else ScanFalse(feld); feld.feld[p1] = 0; } feld.feld[p2] = 0; } feld.feld[p3] = 0; } feld.feld[p4] = 0; } }
public void Test_0_Leer() { var feld = new SpielFeld(Feld); ScanFalse(feld); }
public void Test2Fd_SpielerAnzahl() { const string Feld = "xxoxoxo" + "oxoxoxo" + "oxoxoxo" + "xoxoxox" + "xoxoxox" + "xoxoxox"; var feld = new SpielFeld(Feld); }
public bool nextRound() { moves++; Position newPosition = new Position(_ameise.Position); Directions direction = _ameise.Direction; if (!this.isPositionValide(_ameise.Position)) { return false; } SpielFeld spielFeld = _spielfelder[_ameise.Position.X][_ameise.Position.Y]; spielFeld.switchColor(); _lastSpielFeld = spielFeld; if (!spielFeld.isFieldWhite()) { switch (direction) { case Directions.North: newPosition.X--; direction = Directions.West; break; case Directions.East: newPosition.Y++; direction = Directions.North; break; case Directions.South: newPosition.X++; direction = Directions.East; break; case Directions.West: newPosition.Y--; direction = Directions.South; break; } } else { switch (direction) { case Directions.North: newPosition.X++; direction = Directions.East; break; case Directions.East: newPosition.Y--; direction = Directions.South; break; case Directions.South: newPosition.X--; direction = Directions.West; break; case Directions.West: newPosition.Y++; direction = Directions.North; break; } } if (!isPositionValide(newPosition)) { return false; } _lastPosition = new Position(_ameise.Position); _ameise.Position = new Position(newPosition); _ameise.Direction = (Directions)direction; return true; }