コード例 #1
0
ファイル: Program.cs プロジェクト: Goldenws/SnakeGamePatched
        static void Main(string[] args)
        {
            int   score = 0;
            Walls walls = new Walls(119, 29);

            walls.Draw();
            Point snakeTail = new Point(5, 5, 's');
            Snake snake     = new Snake(snakeTail, 10, Direction.RIGHT);

            snake.Draw();
            FoodGenerator foodGenerator = new FoodGenerator(119, 29, '$');
            Point         food          = foodGenerator.GenerateFood();

            food.Draw();


            while (true)
            {
                if (walls.IsHit(snake) || snake.IsHitTail())
                {
                    break;
                }
                if (snake.Eat(food))
                {
                    food = foodGenerator.GenerateFood();
                    food.Draw();


                    Random rnd = new Random();
                    int    num = rnd.Next(1, 3);
                    if (num == 1)
                    {
                        score = score + 2;
                    }
                    else
                    {
                        score--;
                    }
                }
                else
                {
                    snake.Move();
                }


                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    snake.HandleKeys(key.Key);
                }

                Thread.Sleep(300);
            }

            string str_score = Convert.ToString(score);

            WriteGameOver(str_score);
            Console.ReadLine();
        }
コード例 #2
0
        }// Main()

        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();
            }
        }// Loop()
コード例 #3
0
 static void Loop(object obj)//Функция движения
 {
     if (walls.IsHit(snake.Head()) || snake.IsHit(snake.Head()))
     {
         time.Change(0, Timeout.Infinite);
     }
     else if (snake.Eat(food.food))
     {
         food.CreateFood();
     }
     else
     {
         snake.Move();
     }
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: gotkaya/SnakeGame
        static void Main(string[] args)
        {
            int   score = 0;
            Walls walls = new Walls(80, 25);

            walls.Draw();

            Point snakeTail = new Point(15, 15, 's');
            Snake snake     = new Snake(snakeTail, 5, Direction.RIGHT);

            snake.Draw();

            FoodGenerator foodGenerator = new FoodGenerator(80, 25, '$');
            Point         food          = foodGenerator.GenerateFood();

            food.Draw();

            while (true)
            {
                if (walls.IsHit(snake) || snake.IsHitTail())
                {
                    break;
                }
                if (snake.Eat(food))
                {
                    food = foodGenerator.GenerateFood();
                    food.Draw();
                    score++;
                }
                else
                {
                    snake.Move();
                }

                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    snake.HandleKays(key.Key);
                }

                Thread.Sleep(300);
            }
            string str_score = Convert.ToString(score);

            WriteGameOver(str_score);
            Console.ReadLine();
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: blinchk/tthk-snake
        static void Main(string[] args)
        {
            string name;

            while (true)
            {
                Console.Write("Type your name: ");
                name = Console.ReadLine();
                if (name.Length < 3)
                {
                    Console.Clear();
                    Console.WriteLine("Name will be longer than 3 symbols.");
                    continue;
                }
                else
                {
                    Console.Clear();
                    break;
                }
            }

            bool soundSwitch;

            while (true)
            {
                Console.Write("Do you want to turn on sounds? (Y/N): ");
                ConsoleKeyInfo answerkey = Console.ReadKey();
                if (answerkey.Key == ConsoleKey.Y)
                {
                    Console.Clear();
                    soundSwitch = true;
                    break;
                }
                else if (answerkey.Key == ConsoleKey.N)
                {
                    Console.Clear();
                    soundSwitch = false;
                    break;
                }
                else
                {
                    Console.WriteLine("\nPress \'Y\' or \'N\' key.");
                    continue;
                }
            }

            Score score = new Score(9);
            Level level = new Level(1);

            Params settings   = new Params();
            Sounds sound      = new Sounds(settings.GetResourceFolder());
            Sounds pointsound = new Sounds(settings.GetResourceFolder());

            if (soundSwitch == true)
            {
                sound.Play(level.level);
            }

            Console.SetWindowSize(80, 26);

            Walls walls = new Walls(80, 25);

            walls.Draw();

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

            Console.ForegroundColor = ConsoleColor.Red;
            snake.Draw();
            Console.ForegroundColor = ConsoleColor.White;

            FoodCreator foodCreator = new FoodCreator(80, 25, '$');
            Point       food        = foodCreator.CreateFood();

            Console.ForegroundColor = ConsoleColor.Yellow;
            food.Draw();
            Console.ForegroundColor = ConsoleColor.White;

            while (true)
            {
                if (walls.IsHit(snake) || snake.IsHitTail())
                {
                    break;
                }
                if (snake.Eat(food, score, level, sound, soundSwitch))
                {
                    if (soundSwitch == true)
                    {
                        pointsound.Play("point");
                    }
                    food = foodCreator.CreateFood();
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    food.Draw();
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    snake.Move();
                    Console.ForegroundColor = ConsoleColor.Yellow;
                }

                if (level.level == 1)
                {
                    Thread.Sleep(100);
                }
                else if (level.level == 2)
                {
                    Thread.Sleep(75);
                }
                else if (level.level == 3)
                {
                    Thread.Sleep(50);
                }
                else
                {
                    Thread.Sleep(40);
                }

                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    snake.HandleKey(key.Key);
                }
            }
            Messages gameover = new Messages();

            gameover.WriteGameOver(name, score.score, level.level);
            if (soundSwitch == true)
            {
                sound.Stop(level.level);
                pointsound.Play("lose");
            }
            ConsoleKeyInfo _key = Console.ReadKey();

            if (_key.Key == ConsoleKey.Enter)
            {
                Application.Restart();
            }
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: rgn-coder/snake
        static void Main(string[] args)
        {
            //Console.SetBufferSize(80, 25);

            Walls walls = new Walls(80, 25);

            walls.Draw();



            //Рамочка



            HorizontalLines upline    = new HorizontalLines(0, 78, 0, '+');
            HorizontalLines downline  = new HorizontalLines(0, 78, 24, '+');
            VerticalLines   leftline  = new VerticalLines(0, 24, 0, '+');
            VerticalLines   rightline = new VerticalLines(0, 24, 78, '+');

            upline.Draw();
            downline.Draw();
            leftline.Draw();
            rightline.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();

            food.Draw();


            while (true)
            {
                if (walls.IsHit(snake) || snake.IsHitTail())
                {
                    break;
                }
                if (snake.Eat(food))
                {
                    food = foodCreator.CreateFood();
                    food.Draw();
                }
                else
                {
                    snake.Move();
                }

                Thread.Sleep(100);

                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    snake.HandleKey(key.Key);
                }
            }


            while (true)
            {
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    snake.HandleKey(key.Key);
                }
                Thread.Sleep(100);
                snake.Move();
            }
        }
コード例 #7
0
        static void Main(string[] args)
        {
            Console.SetWindowSize(80, 24);
            Console.SetBufferSize(80, 24);


            Menu();


            // отрисовка рамки

            Walls walls = new Walls(80, 24);

            walls.Draw();



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

            snake.Drow();

            FoodCreator foodCreator = new FoodCreator(78, 22, '$');
            Point       food        = foodCreator.CreateFood();

            food.Draw();


            while (true)
            {
                if (walls.IsHit(snake) || snake.IsHitTail())
                {
                    Console.ForegroundColor = ConsoleColor.Red;

                    WriteAt("G A M E       O V E R", 34, 12);

                    Console.ResetColor();
                    Console.ReadLine();

                    break;
                }
                if (snake.Eat(food))
                {
                    food = foodCreator.CreateFood();
                    food.Draw();
                }
                else
                {
                    snake.Move();
                }


                Thread.Sleep(70);



                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    snake.HandleKey(key.Key);
                }
                Thread.Sleep(70);
            }



            Console.ReadKey();
        }
コード例 #8
0
ファイル: Snake.cs プロジェクト: kravamax/SnakeGame
 static void Loop(object obj)
 {
     if (walls.IsHit(snake.GetHead()) || snake.IsHit(snake.GetHead()))
     {
         time.Change(0, Timeout.Infinite);
         GameOver();
         GameOverMenu();
     }
     else if (snake.Eat(foodFactory.Food))
     {
         foodFactory.CreateFood(diflevel);
         if (diflevel == 0)                                                           // система начисления очков для легкого уровня
         {
             scores++;
             if (scores % 3 == 0)
             {
                 if (scores <= 6)
                 {
                     time.Change(0, snakeSpeed -= 40);
                 }                                                                    // увеличиваем скорость змеи, если съели до 6 яблок
                 else if (snakeSpeed >= 0)
                 {
                     time.Change(0, snakeSpeed -= 10);
                 }                                                                    // немного увеличиваем после 6 яблок
                 level++;
             }
         }
         else if (diflevel == 1)                                                           // система начисления очков для среднего уровня
         {
             scores += 2;
             if (scores % 4 == 0)
             {
                 if (scores <= 6)
                 {
                     time.Change(0, snakeSpeed -= 30);
                 }                                                                    // увеличиваем скорость змеи, если съели до 6 яблок
                 else if (snakeSpeed >= 0)
                 {
                     time.Change(0, snakeSpeed -= 10);
                 }                                                                    // немного увеличиваем после 6 яблок
                 level++;
             }
         }
         else if (diflevel == 2)                                                           // система начисления очков для тяжелого уровня
         {
             scores += 4;
             if (scores % 8 == 0)
             {
                 if (scores <= 12)
                 {
                     time.Change(0, snakeSpeed -= 20);
                 }                                                                     // увеличиваем скорость змеи, если съели до 12 яблок
                 else if (snakeSpeed >= 0)
                 {
                     time.Change(0, snakeSpeed -= 10);
                 }                                                                     // еще ускоряемся после 12 яблок
                 level++;
             }
         }
     }
     else
     {
         snake.Move();
         SetCursorPosition(0, 28);
         GameInfo();                                                             // вывод игрового табло с инфой
     }
 }
コード例 #9
0
        private static void Start()
        {
            Walls walls = new Walls(Width, Height);

            walls.Draw();

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

            snake.Draw();

            FoodCreator foodCreator = new FoodCreator(Width, Height, '$');
            Point       food        = foodCreator.CreateFood(snake);

            food.Draw();
            int[,] s = new int[Width, Height];

            while (true)
            {
                if (walls.IsHit(snake) || snake.IsHitTail())
                {
                    break;
                }
                if (snake.Eat(food))
                {
                    do
                    {
                        food = foodCreator.CreateFood(snake);
                    } while (IsColision(snake, food));

                    food.Draw();
                }
                else
                {
                    for (int i = 0; i < Width; i++)
                    {
                        for (int j = 0; j < Height; j++)
                        {
                            s[i, j] = (int)Figures.EmptySpace;
                        }
                    }

                    foreach (var item in walls.Points)
                    {
                        s[item.x, item.y] = (int)Figures.Barrier;
                    }

                    s[food.x, food.y] = (int)Figures.Destination;

                    foreach (var item in snake.Points)
                    {
                        var first = snake.Points.Last();
                        if (item == first)
                        {
                            s[item.x, item.y] = (int)Figures.StartPosition;
                        }
                        else
                        {
                            s[item.x, item.y] = (int)Figures.Barrier;
                        }
                    }
                    var li = new LeeAlgorithm(s);
                    System.Drawing.Point head = new System.Drawing.Point(0, 0);
                    System.Drawing.Point nextstep;
                    if (!li.PathFound)
                    {
                        food = foodCreator.CreateFood(snake);
                    }
                    else
                    {
                        foreach (var item in li.Path)
                        {
                            if (item == li.Path.Last())
                            {
                                s[item.Item1, item.Item2] = (int)Figures.StartPosition;
                                head = new System.Drawing.Point(item.Item1, item.Item2);
                            }
                            else if (item == li.Path.First())
                            {
                                s[item.Item1, item.Item2] = (int)Figures.Destination;
                            }
                            else
                            {
                                s[item.Item1, item.Item2] = (int)Figures.Path;
                            }
                        }

                        nextstep = new System.Drawing.Point(li.Path[li.Path.Count - 2].Item1, li.Path[li.Path.Count - 2].Item2);



                        var dir = GetDirection(head, nextstep);

                        switch (dir)
                        {
                        case Direction.LEFT:
                            snake.HandleKey(ConsoleKey.LeftArrow);
                            break;

                        case Direction.RIGHT:
                            snake.HandleKey(ConsoleKey.RightArrow);
                            break;

                        case Direction.UP:
                            snake.HandleKey(ConsoleKey.UpArrow);
                            break;

                        case Direction.DOWN:
                            snake.HandleKey(ConsoleKey.DownArrow);
                            break;
                        }
                    }
                    int speed = 1;
                    snake.Move();
                    Thread.Sleep(speed);
                }
            }
            WriteGameOver();
            Console.ReadLine();
        }