예제 #1
0
파일: Game.cs 프로젝트: MaratNurzhan/PP2
        public void Start()
        {
            DrawGameField();
            string welcomePlayer1 = "Enter name of player1: ";
            string welcomePlayer2 = "Enter name of player2: ";

            Console.SetCursorPosition(MarginLeft * 2 + Width - welcomePlayer1.Length, MarginTop + Height / 2);
            Console.Write(welcomePlayer1);
            userName1 = Console.ReadLine();
            Console.SetCursorPosition(MarginLeft * 2 + Width - welcomePlayer2.Length, MarginTop + Height / 2 + 1);
            Console.Write(welcomePlayer1);
            userName2 = Console.ReadLine();

            Console.Clear();
            DrawGameField();
            Thread thread = new Thread(MoveSnake);

            thread.Start();



            bool startAgain = true;

            while (startAgain)
            {
                do
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    if (key.Key == ConsoleKey.Escape)
                    {
                        break;
                    }
                    snake1.ChangeDirection(key);
                    snake2.ChangeDirection1(key);

                    if (key.Key == ConsoleKey.S)
                    {
                        SaveGame(this);
                        ShowMessage("Saved", 5, 29, 25);
                    }
                } while (Alive);

                do
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    if (key.Key == ConsoleKey.N)
                    {
                        Console.Clear();
                        DrawGameField();
                        Random random = new Random();
                        int    a      = random.Next(1, Game.Width);
                        int    b      = random.Next(1, Game.Height);
                        snake1.SnakeGenerate(a, b, 3);
                        int a1 = random.Next(1, Game.Width);
                        int b1 = random.Next(1, Game.Height);
                        snake2.SnakeGenerate(a1, b1, 3);
                        snake1.NoDirection();
                        snake2.NoDirection();
                        wall.ReloadLevel();
                        Alive = true;
                        break;
                    }
                    else if (key.Key == ConsoleKey.D)
                    {
                        Game game = LoadGame();
                        snake1 = game.snake1;
                        snake2 = game.snake2;
                        snakes = new List <Snake> {
                            snake1, snake2
                        };
                        wall        = game.wall;
                        food        = game.food;
                        score1      = game.score1;
                        score2      = game.score2;
                        gameObjects = new List <GameObject>
                        {
                            snake1,
                            snake2,
                            wall,
                            food
                        };
                        Alive      = true;
                        CloseGame  = false;
                        startAgain = true;
                        Console.Clear();
                        DrawGameField();
                        break;
                    }
                    else if (key.Key == ConsoleKey.X)
                    {
                        startAgain = false;
                        CloseGame  = true;
                        break;
                    }
                } while (true);
            }
        }