Example #1
0
        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();
            }
        }
Example #2
0
        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));
        }
Example #16
0
 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);
        }
Example #22
0
            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;
            }