private void InitializeHorizontalBorder(int coordinateY) { for (int i = 0; i < BoardCoordinate.CoordinateX; i++) { DrawManager.Draw("\u25A0", new List <Coordinate>() { new Coordinate(i, coordinateY) }); } }
private void InitializeVerticalBorder(int coordinateX) { for (int i = 0; i < BoardCoordinate.CoordinateY; i++) { DrawManager.Draw("\u2588", new List <Coordinate>() { new Coordinate(coordinateX, i) }); } }
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); } } }
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); } } }