Exemple #1
0
 private void InitializeHorizontalBorder(int coordinateY)
 {
     for (int i = 0; i < BoardCoordinate.CoordinateX; i++)
     {
         DrawManager.Draw("\u25A0", new List <Coordinate>()
         {
             new Coordinate(i, coordinateY)
         });
     }
 }
Exemple #2
0
 private void InitializeVerticalBorder(int coordinateX)
 {
     for (int i = 0; i < BoardCoordinate.CoordinateY; i++)
     {
         DrawManager.Draw("\u2588", new List <Coordinate>()
         {
             new Coordinate(coordinateX, i)
         });
     }
 }
Exemple #3
0
        public void Run()
        {
            while (true)
            {
                if (Console.KeyAvailable)
                {
                    ChangeSnakeDirection(Console.ReadKey());
                }

                DrawManager.Draw(Food.Symbol, new List <Coordinate>()
                {
                    Food.Position
                });

                DrawManager.Draw(Snake.Symbol, Snake.Body);

                PlayerInfo();

                Snake.Move();
                DrawManager.UndoDraw();

                if (SnakeHasCollisionWithFood())
                {
                    Snake.Eat(Food);
                    Score += Food.Points;
                    Food   = FoodFactory.Create();
                }

                if (SnakeHasCollisionWithBorder() || SnakeHasCollisionWithHerself())
                {
                    AskPlayerForRestart();
                }

                if (Snake.Direction == Direction.Left || Snake.Direction == Direction.Right)
                {
                    Thread.Sleep(GameConstants.Engine.ThreadSleepTimeHorizontalMovement);
                }
                else
                {
                    Thread.Sleep(GameConstants.Engine.ThreadSleepTimeVerticalMovement);
                }
            }
        }
Exemple #4
0
        public void Run()
        {
            while (true)
            {
                this.PlayerInfo();

                if (Console.KeyAvailable)
                {
                    this.SetCorrectDirection(Console.ReadKey());
                }
                drawManager.Draw(food.FoodSymbol, new List <Coordinate> {
                    food.FoodCoordinates
                });

                this.drawManager.Draw(GameConstants.Snake.SNAKE_SYMBOL, this.snake.Body);
                this.snake.Move();
                this.drawManager.UndoDraw();

                if (HasFoodCollision())
                {
                    this.snake.Eat(this.food);
                    this.gameScore += this.food.FoodPoints;

                    this.InitializeFood();
                }

                if (HasBorderCollision())
                {
                    this.AskPlayerForRestart();
                }

                if (this.snake.Direction == Direction.Up || this.snake.Direction == Direction.Down)
                {
                    Thread.Sleep(200);
                }
                else
                {
                    Thread.Sleep(150);
                }
            }
        }