public void Run() { Console.SetWindowSize(SizeX + 1, SizeY + 1); Console.SetBufferSize(SizeX + 1, SizeY + 1); Console.CursorVisible = false; Console.ForegroundColor = ConsoleColor.Yellow; _walls = new Walls(SizeX, SizeY, WallsSymbol); Console.ResetColor(); _foodFactory = new FoodFactory(SizeX, SizeY, FoodSymbol); _foodFactory.CreateFood(); _snake = new Snake(SizeX / 2, SizeY / 2, SnakeSymbol, SnakeLength); // Каждые GameDelay секунд срабатывает метод Loop. _timer = new Timer(Loop, null, 0, GameDelay); while (true) { if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(true); _snake.Rotation(key.Key); } } }
static void Loop(object obj) { if (walls.IsHit(snake.GetHead()) || snake.IsHit(snake.GetHead())) { time.Change(0, Timeout.Infinite); } else if (snake.Eat(foodFactory.food)) { foodFactory.CreateFood(); } else { snake.Move(); } }
private void Loop(object obj) { if (_walls.IsHitBySnake(_snake.GetHead()) || _snake.IsHitYourSelf(_snake.GetHead())) { _timer.Change(0, Timeout.Infinite); } else if (_snake.Eat(_foodFactory.Food)) { _foodFactory.CreateFood(); } else { _snake.Move(); } return; }
static void Main(string[] args) { Console.SetWindowSize(x + 1, y + 1); Console.SetBufferSize(x + 1, y + 1); Console.CursorVisible = false; walls = new Walls(x, y, '#'); foodFactory = new FoodFactory(x, y, '@'); foodFactory.CreateFood(); snake = new Snake(x / 2, y / 2, 3); time = new Timer(Loop, null, 0, 200); while (true) { if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.Rotation(key.Key); } } }
static void Main() { Console.CursorVisible = false; walls = new Walls(x, y, '#'); snake = new Snake(x / 2, y / 2, 3); foodFactory = new FoodFactory(x, y, '@'); foodFactory.CreateFood(); time = new Timer(Loop, null, 0, 180); while (true) { if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.Rotation(key.Key); } } }
private void Loop(object obj) { if (_walls.IsHitBySnake(_snake.GetHead()) || _snake.IsHitYourSelf(_snake.GetHead())) { _timer.Dispose(); PrintLose(); } else if (_snake.Eat(_foodFactory.Food)) { _foodFactory.CreateFood(); } else { if (_snake.CountFruit == 10) { PrintWin(); } else { _snake.Move(); } } }