public static int FallInToPit()
        {
            Console.Clear();
            Console.WriteLine("============================================");
            Console.WriteLine("You fall into a buttomless pit...");
            Console.WriteLine("============================================");
            PrintEndINFO();
            Console.WriteLine("--------\nGameOver\n--------");
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
            Console.Clear();
            VisitedPointOfInterest.Clear();
            VisitedTrace.Clear();
            EndMapInfo.Clear();
            MapInfo.Clear();

            return(99);
        }
        public static void PopulatePlayer(string size)
        {
            int col = Loc.Next(MapSize[size]);
            int row = Loc.Next(MapSize[size]);

            if (newMap[col, row].Occupied == false)
            {
                newMap[col, row].Player       = true;
                newMap[col, row].Occupied     = true;
                PlayerCurrentCol              = col;
                PlayerCurrentRow              = row;
                newMap[col, row].VisitedTrace = true;
                VisitedTrace.Enqueue($"[{newMap[col, row].Column},{newMap[col, row].Row}]");
            }
            else
            {
                PopulatePlayer(size);
            }
        }
        public static int WumpusEatsYou()
        {
            if (newMap[PlayerCurrentCol, PlayerCurrentRow].Wumpus == true)
            {
                Console.Clear();

                Console.WriteLine("==========================");
                Console.WriteLine("You got eaten by Wumpus!");
                Console.WriteLine("==========================");
                PrintEndINFO();
                Console.WriteLine("--------\nGameOver\n--------");
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
                Console.Clear();
                VisitedPointOfInterest.Clear();
                VisitedTrace.Clear();
                EndMapInfo.Clear();
                MapInfo.Clear();

                return(99);
            }
            else
            {
                Console.Clear();

                Console.WriteLine("==========================");
                Console.WriteLine("You missed Wumpus...");
                Console.WriteLine("You got eaten by Wumpus!");
                Console.WriteLine("==========================");
                PrintEndINFO();
                Console.WriteLine("--------\nGameOver\n--------");
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
                Console.Clear();
                VisitedPointOfInterest.Clear();
                VisitedTrace.Clear();
                EndMapInfo.Clear();
                MapInfo.Clear();


                return(99);
            }
        }
 public static int CheckIfWumpusDead(int updateCol, int updatedRow)
 {
     if (newMap[updateCol, updatedRow].Wumpus == true)
     {
         Console.WriteLine("=============================================");
         Console.WriteLine("You shot Wumpus dead in the head, you win!!");
         Console.WriteLine("=============================================");
         PrintEndINFO();
         Console.WriteLine("--------\nGameOver\n--------");
         Console.ReadKey();
         Console.Clear();
         VisitedPointOfInterest.Clear();
         VisitedTrace.Clear();
         EndMapInfo.Clear();
         MapInfo.Clear();
         return(100);
     }
     else
     {
         return(WumpusEatsYou());
     }
 }
        //**Methods and statements in below section allow players to Move, Shoot, get Notes, trace Player's previous moves and cheat.**

        //The Move method update the player's location by assigning proper value to Cavern.Player property.
        public static int Move(string size)
        {
            PlayerPreviousCol = PlayerCurrentCol;
            PlayerPreviousRow = PlayerCurrentRow;
            string direction = Console.ReadLine();

            switch (direction)
            {
            case "1":
                newMap[PlayerCurrentCol, PlayerCurrentRow].Player   = false;
                newMap[PlayerCurrentCol, PlayerCurrentRow].Occupied = false;
                int updatedRow = PlayerCurrentRow - 1;
                if (updatedRow < 0)
                {
                    updatedRow = MapSize[size] - 1;
                }
                newMap[PlayerCurrentCol, updatedRow].Player = true;
                PlayerCurrentRow = updatedRow;
                VisitedTrace.Enqueue($"[{newMap[PlayerCurrentCol, updatedRow].Column},{newMap[PlayerCurrentCol, updatedRow].Row}]");
                newMap[PlayerCurrentCol, updatedRow].VisitedTrace = true;
                Game.move++;
                return(CheckIfCavernIsOccupied(size));

            case "2":
                newMap[PlayerCurrentCol, PlayerCurrentRow].Player   = false;
                newMap[PlayerCurrentCol, PlayerCurrentRow].Occupied = false;
                updatedRow = PlayerCurrentRow + 1;
                if (updatedRow > MapSize[size] - 1)
                {
                    updatedRow = 0;
                }
                newMap[PlayerCurrentCol, updatedRow].Player = true;
                PlayerCurrentRow = updatedRow;
                VisitedTrace.Enqueue($"[{newMap[PlayerCurrentCol, updatedRow].Column},{newMap[PlayerCurrentCol, updatedRow].Row}]");
                newMap[PlayerCurrentCol, updatedRow].VisitedTrace = true;
                Game.move++;
                return(CheckIfCavernIsOccupied(size));

            case "4":
                newMap[PlayerCurrentCol, PlayerCurrentRow].Player   = false;
                newMap[PlayerCurrentCol, PlayerCurrentRow].Occupied = false;
                int updatedCol = PlayerCurrentCol - 1;
                if (updatedCol < 0)
                {
                    updatedCol = MapSize[size] - 1;
                }
                newMap[updatedCol, PlayerCurrentRow].Player = true;
                PlayerCurrentCol = updatedCol;
                VisitedTrace.Enqueue($"[{newMap[updatedCol, PlayerCurrentRow].Column},{newMap[updatedCol, PlayerCurrentRow].Row}]");
                newMap[updatedCol, PlayerCurrentRow].VisitedTrace = true;
                Game.move++;
                return(CheckIfCavernIsOccupied(size));

            case "3":
                newMap[PlayerCurrentCol, PlayerCurrentRow].Player   = false;
                newMap[PlayerCurrentCol, PlayerCurrentRow].Occupied = false;
                updatedCol = PlayerCurrentCol + 1;
                if (updatedCol > MapSize[size] - 1)
                {
                    updatedCol = 0;
                }
                newMap[updatedCol, PlayerCurrentRow].Player = true;
                PlayerCurrentCol = updatedCol;
                VisitedTrace.Enqueue($"[{newMap[updatedCol, PlayerCurrentRow].Column},{newMap[updatedCol, PlayerCurrentRow].Row}]");
                newMap[updatedCol, PlayerCurrentRow].VisitedTrace = true;
                Game.move++;
                return(CheckIfCavernIsOccupied(size));

            default:
                Game.Update();
                return(0);
            }
        }