Пример #1
0
        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);
                }
            }
        }
Пример #2
0
 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();
     }
 }
Пример #3
0
        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;
        }
Пример #4
0
 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);
         }
     }
 }
Пример #5
0
        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);
                }
            }
        }
Пример #6
0
        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();
                }
            }
        }