Пример #1
0
        public Game()
        {
            Console.SetWindowSize(90, 25);
            Walls walls = new Walls(80, 25);

            walls.Draw();
            Point p     = new Point(4, 5, '*');
            Snake snake = new Snake(p, 4, Direction.RIGHT);

            snake.Draw();
            FoodCreator foodCreator = new FoodCreator(80, 25, '#', '@', '$');
            Point       food        = foodCreator.CreateFood();
            Point       spsfood     = foodCreator.CreateSpsFood();
            Point       badfood     = foodCreator.CreateBadFood();

            food.Draw();
            Params settings = new Params();
            Sounds sound    = new Sounds(settings.GetResourcesFolder());

            sound.Play();
            Counter count = new Counter(0);

            count.ScoreWrite();
            Sounds soundEat = new Sounds(settings.GetResourcesFolder());

            while (true)
            {
                if (walls.IsHit(snake) || snake.IsHitTail())
                {
                    break;
                }
                if (snake.Eat(food))
                {
                    food = foodCreator.CreateFood();
                    food.Draw();
                    count.ScoreUp();                           //функция повышает вчёт очков на 1
                    count.ScoreWrite();                        // Выводит на экран счёт
                    soundEat.PlayEat();                        // Воспроизводит звук поедания еды
                    if (count.GetScore() % 10 == 0)            //Если остаток счёта развен 0 ( то есть каждые 10 очков будет появляться спец. еда) + //получает счёт в данный момент времени и заносит в переменную
                    {
                        spsfood = foodCreator.CreateSpsFood(); //создаём спец еду
                        spsfood.Draw();                        //отрисовываем спец еду
                        badfood = foodCreator.CreateBadFood();
                        badfood.Draw();
                    }
                }
                if (snake.Eat(spsfood))    //Если спец. еду съедают то ...
                {
                    count.ScoreUpx3();     //увеличиваем счёт на 3 единицы
                    count.ScoreWrite();    //выводим на экран увеличеный счёт
                    soundEat.PlaySpsEat(); //воспроизводим звук съедания спец. еды
                }
                if (snake.BadEat(badfood))
                {
                    count.ScoreDown();
                    count.ScoreWrite();
                    soundEat.PlayBadEat();
                }
                else
                {
                    snake.Move();
                }
                new Speed(count.GetScore()); //изменение скорости при наборе определённого количества очков

                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    snake.MandlKey(key.Key);
                }
            }
            new WriteGameOver();
            sound.Stop();
            Thread.Sleep(1500);                                                // Задержка на появление Игра окончена
            new Leader_Board(count.GetScore(), settings.GetResourcesFolder()); // Запись имени игрока + счёта
            ShowBestScores best = new ShowBestScores();

            best.ReadFile(); //Показ лучших игроков
        }
Пример #2
0
        public bool Main()
        {
            Render rnd = new Render();
            int    selected;
            Random random = new Random();
            Sounds snd    = new Sounds();
            bool   win;

            snd.Music(random.Next(1, 5));
            do
            {
                rnd.Menu(skalkamode);
            } while(!int.TryParse(Convert.ToString(Console.ReadKey(false).KeyChar), out selected));

            switch (selected)
            {
            case 0:
            {
                return(false);
            }

            case 1:
            {
                Game game = new Game(border, body, point, space, delay, shortdelay);
                Console.Clear();
                snd.Stop();
                win = game.Start(skalkamode);
                if (win)
                {
                    snd.Sound("win");
                    rnd.Win();
                    Thread.Sleep(2000);
                }
                else
                {
                    snd.Sound("win");
                    rnd.Gameover();
                    Thread.Sleep(2000);
                }
                Console.Clear();
                break;
            }

            case 2:
            {
                Console.Clear();
                Console.SetCursorPosition(0, 0);
                Console.Write("Work in progress (press any key)");
                Console.ReadKey();
                break;
            }

            case 3:
            {
                Console.Clear();
                Console.SetCursorPosition(0, 0);
                Console.Write("Move by arrows (double tab dirrectio for sprint). /nYou can pause game by draging mouse over the game area. /nIf you go to border, yourself or backwards, you gona die.");
                Console.ReadKey();
                break;
            }
            }
            return(true);
        }