예제 #1
0
파일: Game.cs 프로젝트: Zhen92/Courses
        public void StartGame()
        {
            Game   game   = new Game();
            Person person = new Person();
            Trap   trap   = new Trap();
            Output output = new Output();

            bool firstСondition   = true;
            bool secondСondition  = true;
            int  numericСondition = 0;
            int  x  = 1;
            int  y  = 1;
            int  HP = person.HP;

            while (firstСondition)
            {
                output.GreetPlayer();
                game.CreateField();
                trap.MiningTheField();

                while (secondСondition)
                {
                    person.ToMovePlayer(ref x, ref y);
                    game.Field[y, x] = person.Player;

                    Console.Clear();

                    if (person.Player == trap.Traps[y, x])
                    {
                        game.Field[y, x] = trapSymbol;
                    }
                    game.Field[princessPositionOx, princessPositionOy] = princessSymbol;
                    Console.WriteLine("Твой HP: " + HP);

                    for (int i = 0; i < game.Rows; i++)
                    {
                        for (int j = 0; j < game.Columns; j++)
                        {
                            Console.Write($"{game.Field[i, j] }\t");
                        }
                        Console.WriteLine("\n");
                    }
                    if (game.Field[y, x] == game.Field[princessPositionOx, princessPositionOy])
                    {
                        game.WinCondition(ref firstСondition, ref secondСondition, ref numericСondition);
                    }
                    else if (person.Player == trap.Traps[y, x])
                    {
                        trap.Traps[y, x] = trapSymbol;
                        HP -= trap.Damage;
                        if (HP <= 0)
                        {
                            game.LoseCondition(ref firstСondition, ref secondСondition, ref numericСondition);
                        }
                    }
                    if (game.Field[y, x] != trapSymbol)
                    {
                        game.Field[y, x] = border;
                    }
                }
                game.RestartGame(ref firstСondition, ref secondСondition, ref numericСondition, ref x, ref y, ref HP);
            }
        }