Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            //Console.SetBufferSize(80, 25);
            //Console.SetBufferSize(120, 30);

            Console.SetWindowSize(1, 1);
            Console.SetBufferSize(80, 25);
            Console.SetWindowSize(80, 25);

            // отрисовка рамочки
            Walls walls = new Walls(80, 25);

            walls.DrawLine();

            //отрисовка точек
            Point p     = new Point(4, 5, '#');
            Snake snake = new Snake(p, 4, Direction.RIGHT);

            snake.DrawLine();


            FoodCreator foodCreator = new FoodCreator(80, 25, '$'); //габариты экрана и символ еды
            Point       food        = foodCreator.CreateFood();

            while (true) //проверка на генерацию еды внутри змеи
            {
                if (!snake.IsHit(food))
                {
                    break;
                }
                else
                {
                    food = foodCreator.CreateFood();
                }
            }
            food.Draw();

            while (true)
            {
                if (walls.IsHit(snake) || snake.IsHitTail())
                {
                    break;
                }
                if (snake.Eat(food)) //встретится ли змейка с едой
                {
                    while (true)     //проверка на генерацию еды внутри змеи
                    {
                        if (!snake.IsHit(food))
                        {
                            break;
                        }
                        else
                        {
                            food = foodCreator.CreateFood();
                        }
                    }
                    food.Draw();
                }
                else
                {
                    snake.Move();
                }
                Thread.Sleep(100);
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    snake.HandleKey(key.Key);
                }
            }


            WriteGameOver();
            Console.ReadLine();
        }