static void Main(string[] args) { Console.SetBufferSize(120, 50); /* * Инициализация змейки с длиной тела, равной 3 и игрового поля. * Начальное положение змейки в центре игрового поля. */ GameBorders gameBorders = new GameBorders(120, 50); Models.Snake snake = new Models.Snake(new Point(60, 25), Direction.Right, 3 ); FoodGenerator gen = new FoodGenerator(120, 50); Point foodPoint = gen.GenerateFood(); foodPoint.Draw(gen.symbol); /* * Обработка нажатий клавиш управления пользователем */ while (true) { if (snake.IsHitWall(gameBorders.borders) || snake.IsHitTail()) { break; } if (snake.Eat(foodPoint)) { foodPoint = gen.GenerateFood(); foodPoint.Draw(gen.symbol); } else { snake.Move(); } Thread.Sleep(100); if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.ButtonHandler(key.Key); } } WriteGameOver(); Console.ReadLine(); }
private void CheckForFood() { Point head = new Point(Canvas.GetLeft(SnakeParts[0]), Canvas.GetTop(SnakeParts[0])); Point food = new Point(Canvas.GetLeft(_foodGenerator.Food), Canvas.GetTop(_foodGenerator.Food)); if (head == food) { _playField.Children.Remove(_foodGenerator.Food); _foodGenerator.GenerateFood(); GenerateSnakePart(); SetScore(); } }