Example #1
0
 /// <summary>
 /// Displays a message upon death
 /// </summary>
 /// <param name="cons">The global variables</param>
 public void YourDead(GameCons cons)
 {
     Console.Clear();
     Console.WriteLine($"\nYou've died, what a shame...\n" +
                       $"You made it till level {cons.level}!");
     Console.ReadLine();
     Environment.Exit(0);
     Console.ReadKey();
 }
Example #2
0
 /// <summary>
 /// Shows the messages to the player
 /// </summary>
 /// <param name="cons">The global constants</param>
 /// <param name="world">The current world</param>
 public void ShowMessages(GameCons cons, World world)
 {
     Console.WriteLine("\n Messages:\n -----------");
     // Shows the messages corresponding to the players movement
     if (world.moved != "NOPE")
     {
         Console.WriteLine($"\n  * You moved {world.moved}.");
     }
     Console.WriteLine("\n -----------");
 }
Example #3
0
 /// <summary>
 /// Starts the game
 /// </summary>
 /// <param name="cons">The global constants</param>
 public void NewGame(GameCons cons)
 {
     Console.OutputEncoding = Encoding.UTF8;
     // Clears the console
     Console.Clear();
     // Creates a new World
     world.CreateWorld(cons);
     // Loops while the Player's alive
     while (cons.player.Hp > 0)
     {
         // Renders the World
         renderer.Render(cons, world);
         // Renders the messages
         messages.ShowMessages(cons, world);
         // Renders what's around the Player
         check.Check(cons, world);
         // Renders the valid inputs
         inputs.WhatInputs();
         // Checks the input from the player
         commands.CheckInputs(cons, world);
         // Decrements the players HP
         cons.player.Hp--;
         // Clears the console
         Console.Clear();
         // When the player is able to level up
         if (checkLevelUp.CheckLevelUp(cons, world) == true)
         {
             // Inititialize a new World
             world = new World();
             // Create a new World
             world.CreateWorld(cons);
             // Render the new World
             renderer.Render(cons, world);
         }
     }
     // Displays the death message
     dead.YourDead(cons);
 }
Example #4
0
 /// <summary>
 /// Checks if the player can progress to the next level
 /// </summary>
 /// <param name="cons">The global constants</param>
 /// <param name="world">The current world</param>
 /// <returns>Returns a true or a false</returns>
 public bool CheckLevelUp(GameCons cons, World world)
 {
     // When the players list has an exit in it this code will be done
     if (world.array[world.playerX, world.playerY].Contains(cons.player) &&
         world.array[world.playerX, world.playerY].Contains(cons.exit) && cons.player.Hp != 0)
     {
         // Increments the level
         cons.level++;
         // Clears the Console
         Console.Clear();
         // Displays an informative message to the user
         Console.WriteLine($"\nYou've made it to level {cons.level}!" +
                           $"\nPress any Key to continue.");
         // Waits for feedback
         Console.ReadKey();
         // Clears the console
         Console.Clear();
         // Returns a "true" so the program can continue to the next level
         return(true);
     }
     // Returns a "false" so the current level may continue
     return(false);
 }
Example #5
0
        /// <summary>
        /// Creates a World
        /// </summary>
        /// <param name="cons">The global constants</param>
        public void CreateWorld(GameCons cons)
        {
            for (int row = 0; row < 8; row++)
            {
                for (int column = 0; column < 8; column++)
                {
                    // Creates a List inside all Tiles
                    array[row, column] = new Tile();
                }
            }
            // Adds a player to the world
            array[playerX, playerY].Add(cons.player);
            // Adds a exit to the world
            array[exitX, exitY].Add(cons.exit);
            // Generates a random X coordenate for the map
            int mapX = random.Next(0, 8);
            // Generates a random Y coordenate for the map
            int mapY = random.Next(0, 8);

            // Loop while theres no map in the maps coordenates
            while (array[mapX, mapY].Contains(cons.map) == false)
            {
                /* If theres no exit in the maps coordenates Add a map to the
                 * maps coordenates */
                if (array[mapX, mapY].Contains(cons.exit) == false)
                {
                    array[mapX, mapY].Add(cons.map);
                }
                // Else make new coordenates
                else
                {
                    mapX = random.Next(0, 8);
                    mapY = random.Next(0, 8);
                }
            }
        }
Example #6
0
        /// <summary>
        /// Checks what's inside neighboring tiles to the player
        /// </summary>
        /// <param name="cons">The global variables</param>
        /// <param name="world">The current world</param>
        public void Check(GameCons cons, World world)
        {
            Console.WriteLine("\n What do I see?\n -----------\n");
            // Get List of Items at North
            Console.Write($"  * NORTH : ");
            // Limits the search so it doenst go outside the matrix
            if (world.playerX > 0)
            {
                /* When theres something inside the list north of the player
                 * go in this if */
                if (world.array[world.playerX - 1, world.playerY].Count() > 0)
                {
                    /* Gos throw every object with the intergace IGameObject
                     * thats inside the list north of the player */
                    foreach (IGameObject thing in world.array[world.playerX - 1, world.playerY])
                    {
                        // Displays the propriety "Name" from the thing
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.Write($" {thing.Name}");
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    // Displays a '.' at the end of the listing
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine(".");
                    Console.ForegroundColor = ConsoleColor.White;
                }

                /* When theres nothing inside the list north of the player
                 * go in this if */
                else
                {
                    // Displays "Empty" since the list is empty
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.Write(" Empty.\n");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
            // When the search is outside the matrix go in this else
            else
            {
                // Displays "Wall" since its the limit of the matrix
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(" Wall.");
                Console.ForegroundColor = ConsoleColor.White;
            }
            // Get List of Items at West
            Console.Write($"  * WEST  : ");
            // Limits the search so it doenst go outside the matrix
            if (world.playerY > 0)
            {
                /* When theres something inside the list west of the player
                 * go in this if */
                if (world.array[world.playerX, world.playerY - 1].Count() > 0)
                {
                    /* Gos throw every object with the intergace IGameObject
                     * thats inside the list west of the player */
                    foreach (IGameObject thing in world.array[world.playerX, world.playerY - 1])
                    {
                        // Displays the propriety "Name" from the thing
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.Write($" {thing.Name}");
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    // Displays a '.' at the end of the listing
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine(".");
                    Console.ForegroundColor = ConsoleColor.White;
                }

                /* When theres nothing inside the list west of the player
                 * go in this if */
                else
                {
                    // Displays "Empty" since the list is empty
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.Write(" Empty.\n");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
            // When the search is outside the matrix go in this else
            else
            {
                // Displays "Wall" since its the limit of the matrix
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(" Wall.");
                Console.ForegroundColor = ConsoleColor.White;
            }
            // Get List of Items at East
            Console.Write($"  * EAST  : ");
            // Limits the search so it doenst go outside the matrix
            if (world.playerY < 7)
            {
                /* When theres something inside the list east of the player
                 * go in this if */
                if (world.array[world.playerX, world.playerY + 1].Count() > 0)
                {
                    /* Gos throw every object with the intergace IGameObject
                     * thats inside the list east of the player */
                    foreach (IGameObject thing in world.array[world.playerX, world.playerY + 1])
                    {
                        // Displays the propriety "Name" from the thing
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.Write($" {thing.Name}");
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    // Displays a '.' at the end of the listing
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine(".");
                    Console.ForegroundColor = ConsoleColor.White;
                }

                /* When theres nothing inside the list east of the player
                 * go in this if */
                else
                {
                    // Displays "Empty" since the list is empty
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.Write(" Empty.\n");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
            // When the search is outside the matrix go in this else
            else
            {
                // Displays "Wall" since its the limit of the matrix
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(" Wall.");
                Console.ForegroundColor = ConsoleColor.White;
            }
            // Get List of Items at South
            Console.Write($"  * SOUTH : ");
            // Limits the search so it doenst go outside the matrix
            if (world.playerX < 7)
            {
                /* When theres something inside the list south of the player
                 * go in this if */
                if (world.array[world.playerX + 1, world.playerY].Count() > 0)
                {
                    /* Gos throw every object with the intergace IGameObject
                     * thats inside the list south of the player */
                    foreach (IGameObject thing in world.array[world.playerX + 1, world.playerY])
                    {
                        // Displays the propriety "Name" from the thing
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.Write($" {thing.Name}");
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    // Displays a '.' at the end of the listing
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine(".");
                    Console.ForegroundColor = ConsoleColor.White;
                }

                /* When theres nothing inside the list south of the player
                 * go in this if */
                else
                {
                    // Displays "Empty" since the list is empty
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.Write(" Empty.\n");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
            // When the search is outside the matrix go in this else
            else
            {
                // Displays "Wall" since its the limit of the matrix
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(" Wall.");
                Console.ForegroundColor = ConsoleColor.White;
            }
            // Get List of Items at current position
            Console.Write($"  * HERE  : ");

            /* When theres something inside the current list of the player
             * besides the player itself go in this if */
            if (world.array[world.playerX, world.playerY].Count > 1)
            {
                /* Gos throw every object with the intergace IGameObject
                 * thats inside the current list of the player */
                foreach (IGameObject thing in world.array[world.playerX, world.playerY])
                {
                    // Excludes the player off the search
                    if (thing != cons.player)
                    {
                        // Displays the propriety "Name" from the thing
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.Write($" {thing.Name}");
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                }
                // Displays a '.' at the end of the listing
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine(".");
                Console.ForegroundColor = ConsoleColor.White;
            }
            // When the only thing inside the list is the player go in this if
            if (world.array[world.playerX, world.playerY].Count == 1)
            {
                // Displays "Empty" since the list is empty besides the player
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write(" Empty.\n");
                Console.ForegroundColor = ConsoleColor.White;
            }
            Console.WriteLine("\n -----------");
        }
Example #7
0
        /// <summary>
        /// Checks the inputs of the user
        /// </summary>
        /// <param name="cons">The global variables</param>
        /// <param name="world">The current world</param>
        public void CheckInputs(GameCons cons, World world)
        {
            // Initializing variables to make loops possible
            bool choosing      = true;
            bool choosingKey   = true;
            bool choosingQuit  = true;
            bool choosingItem  = true;
            char choiceKey     = 'X';
            char choiceKeyQuit = 'X';
            char choiceKeyItem = 'X';

            // Loops while the player hasnt made a valid choice to end the turn
            while (choosing)
            {
                // Loops while the player hasnt choosen a valid key
                while (choosingKey)
                {
                    // Inicializes a string to store the users input
                    string choiceKeyStr = Console.ReadLine();
                    // Checks if the input is a valid one
                    if (choiceKeyStr.Length == 1 && (choiceKeyStr == "w" ||
                                                     choiceKeyStr == "s" || choiceKeyStr == "a" ||
                                                     choiceKeyStr == "d" || choiceKeyStr == "q" ||
                                                     choiceKeyStr == "f" || choiceKeyStr == "e" ||
                                                     choiceKeyStr == "u" || choiceKeyStr == "v" ||
                                                     choiceKeyStr == "i"))
                    {
                        // Transforms the user's input into a char
                        choiceKey = Convert.ToChar(choiceKeyStr);
                        break;
                    }
                    // If the user fails to choose a valid input this will show
                    Console.WriteLine("Wrong Inupt, try again...");
                }
                // Switch for all the valid inputs
                switch (choiceKey)
                {
                // In case the input is 'w'
                case 'w':
                    // Limits the player so he cant get off the matrix
                    if (world.playerX > 0)
                    {
                        // Removes the player from the current position
                        world.array[world.playerX, world.playerY].Remove(cons.player);
                        // Adjust to the new position
                        world.playerX -= 1;
                        // Adds the player to the new desired list
                        world.array[world.playerX, world.playerY].Add(cons.player);
                        // Adjusts the bool so we can end the loop
                        choosing = false;

                        /* Adjusts the "moved" string so we can show it
                         * later where the player moved in the messages */
                        world.moved = "NORTH";
                    }

                    /* In case the players desired position is outside
                     * the matrix this will show */
                    Console.WriteLine("Can't Move on that direction!");
                    break;

                // In case the input is 's'
                case 's':
                    // Limits the player so he cant get off the matrix
                    if (world.playerX < 7)
                    {
                        // Removes the player from the current list
                        world.array[world.playerX, world.playerY].Remove(cons.player);
                        // Adjust to the new position
                        world.playerX += 1;
                        // Adds the player to the new desired list
                        world.array[world.playerX, world.playerY].Add(cons.player);
                        // Adjusts the bool so we can end the loop
                        choosing = false;

                        /* Adjusts the "moved" string so we can show it
                         * later where the player moved in the messages */
                        world.moved = "SOUTH";
                    }

                    /* In case the players desired position is outside
                     * the matrix this will show */
                    Console.WriteLine("Can't Move on that direction!");
                    break;

                // In case the input is 'a'
                case 'a':
                    // Limits the player so he cant get off the matrix
                    if (world.playerY > 0)
                    {
                        // Removes the player from the current position
                        world.array[world.playerX, world.playerY].Remove(cons.player);
                        // Adjust to the new position
                        world.playerY -= 1;
                        // Adds the player to the new desired list
                        world.array[world.playerX, world.playerY].Add(cons.player);
                        // Adjusts the bool so we can end the loop
                        choosing = false;

                        /* Adjusts the "moved" string so we can show it
                         * later where the player moved in the messages */
                        world.moved = "WEST";
                    }

                    /* In case the players desired position is outside
                     * the matrix this will show */
                    Console.WriteLine("Can't Move on that direction!");
                    break;

                // In case the input is 'd'
                case 'd':
                    // Limits the player so he cant get off the matrix
                    if (world.playerY < 7)
                    {
                        // Removes the player from the current position
                        world.array[world.playerX, world.playerY].Remove(cons.player);
                        // Adjust to the new position
                        world.playerY += 1;
                        // Adds the player to the new desired list
                        world.array[world.playerX, world.playerY].Add(cons.player);
                        // Adjusts the bool so we can end the loop
                        choosing = false;

                        /* Adjusts the "moved" string so we can show it
                         * later where the player moved in the messages */
                        world.moved = "EAST";
                    }

                    /* In case the players desired position is outside
                     * the matrix this will show */
                    Console.WriteLine("Can't Move on that direction!");
                    break;

                // In case the input is 'q'
                case 'q':
                    // Displays a informative message to the user
                    Console.WriteLine("Are you sure you want to quit? (y/n)");
                    // Loops while the player doesnt give a valid input
                    while (choosingQuit)
                    {
                        // Inicializes a string to store the users input
                        string choiceKeyQuitStr = Console.ReadLine();
                        // Checks if the input is a valid one
                        if (choiceKeyQuitStr.Length == 1 && (choiceKeyQuitStr == "y" ||
                                                             choiceKeyQuitStr == "n"))
                        {
                            // Transforms the user's input into a char
                            choiceKeyQuit = Convert.ToChar(choiceKeyQuitStr);
                            break;
                        }
                        // If the user fails to choose a valid input this will show
                        Console.WriteLine("Wrong Inupt, try again...");
                    }
                    // Switch for all the valid inputs
                    switch (choiceKeyQuit)
                    {
                    // In case the input is 'y'
                    case 'y':
                        // Ends the program
                        Environment.Exit(0);
                        break;

                    // In case the input is 'n'
                    case 'n':
                        break;
                    }
                    break;

                // In case the input is 'e'
                case 'e':
                    /* If theres a map or food inside the player's current
                     * position it will go inside this if */
                    if (world.array[world.playerX, world.playerY].Contains(cons.map) ||
                        world.array[world.playerX, world.playerY].Contains(cons.food))
                    {
                        // Cleans the Console
                        Console.Clear();
                        // Displays a informative message to the user
                        Console.WriteLine("Select an item to Pick Up.\n -----------");
                        Console.WriteLine("0 - Go Back.");

                        /* Initializes a counter to count how many pickable
                         * things are inside the list */
                        int counter = 1;

                        /* Gos throw every object with the intergace IGameObject
                         * thats inside the players current list */
                        foreach (IGameObject thing in world.array[world.playerX, world.playerY])
                        {
                            /* Limits the things to just objects with the
                             * interface IItem */
                            if (thing is IItem item)
                            {
                                // Displays the propriety "Name" from the thing
                                Console.WriteLine($"{counter} - {item.Name}.");
                                // Increments the counter
                                counter++;
                            }
                        }
                        // Loops while the player hasnt choosen a valid key
                        while (choosingItem)
                        {
                            // Inicializes a string to store the users input
                            string choiceKeyItemStr = Console.ReadLine();

                            /* Initializes a int to store the converted
                             * string with the users choice */
                            int choiceKeyItemInt = Convert.ToInt32(choiceKeyItemStr);

                            /* Limits the choices of the user according to
                             * how many things are inside the list */
                            if (choiceKeyItemStr.Length == 1 && choiceKeyItemInt <=
                                (world.array[world.playerX, world.playerY].Count() - 1))
                            {
                                // Transforms the user's input into a char
                                choiceKeyItem = Convert.ToChar(choiceKeyItemStr);
                                // Adjusts the bool so we can end the loop
                                choosingItem = false;
                                break;
                            }
                            // If the user fails to choose a valid input this will show
                            Console.WriteLine("Wrong Inupt, try again...");
                        }

                        /* Gos throw every object with the intergace IGameObject
                         * thats inside the current list of the player */
                        foreach (IGameObject thing in world.array[world.playerX, world.playerY])
                        {
                            /* Limits the things to just objects with the
                             * interface IItem */
                            if (thing is IItem item)
                            {
                                // Switch for all the valid inputs
                                switch (choiceKeyItem)
                                {
                                // In case the input is '0'
                                case '0':
                                    // Adjusts the bool so we can end the loop
                                    choosing = false;
                                    break;

                                // In case the input is '1'
                                case '1':
                                    /* If theres at least two thing
                                     * inside the current array */
                                    if (world.array[world.playerX, world.playerY].Count > 1)
                                    {
                                        /* Runs the PickUp() method
                                        * from the selected item */
                                        item.PickUp(cons, world);
                                        // Adjusts the bool so we can end the loop
                                        choosing = false;
                                        break;
                                    }

                                    /* If the user fails to choose a
                                     * valid input this will show */
                                    Console.WriteLine("Select a valid option.");
                                    continue;

                                // In case the input is '2'
                                case '2':
                                    /* If theres at least three thing
                                     * inside the current array */
                                    if (world.array[world.playerX, world.playerY].Count > 2)
                                    {
                                        /* Runs the PickUp() method
                                        * from the selected item */
                                        item.PickUp(cons, world);
                                        // Adjusts the bool so we can end the loop
                                        choosing = false;
                                        break;
                                    }

                                    /* If the user fails to choose a
                                     * valid input this will show */
                                    Console.WriteLine("Select a valid option.");
                                    continue;

                                // In case the input is '3'
                                case '3':
                                    /* If theres at least four thing
                                     * inside the current array */
                                    if (world.array[world.playerX, world.playerY].Count > 3)
                                    {
                                        /* Runs the PickUp() method
                                        * from the selected item */
                                        item.PickUp(cons, world);
                                        // Adjusts the bool so we can end the loop
                                        choosing = false;
                                        break;
                                    }

                                    /* If the user fails to choose a
                                     * valid input this will show */
                                    Console.WriteLine("Select a valid option.");
                                    continue;

                                default:
                                    /* If the user fails to choose a
                                     * valid input this will show */
                                    Console.WriteLine("Select a valid option.");
                                    continue;
                                }
                            }
                        }
                    }

                    /* If theres nothing besides the player inside the
                     * current list go in this else */
                    else
                    {
                        /* Displays a default message because theres nothing
                         * to pick up */
                        Console.WriteLine("You picked up a rock... It doesnt" +
                                          " seem very useful so you decide to drop it.");
                    }
                    break;

                // In case the input is 'f'
                case 'f':
                    // Displays a informative message to the user
                    Console.WriteLine("You decide to frantically swing your " +
                                      "spoon... Fortunatly you didnt die! It looks like " +
                                      "this feature is not implemented...");
                    Console.WriteLine("Choose something else...");
                    break;

                // In case the input is 'u'
                case 'u':
                    // Displays a informative message to the user
                    Console.WriteLine("You decide to use your mind and think!" +
                                      " Its not going so well... You figured that this " +
                                      "feature is not implemented...");
                    Console.WriteLine("Choose something else...");
                    break;

                // In case the input is 'v'
                case 'v':
                    // Displays a informative message to the user
                    Console.WriteLine("It looks like you dropped your spoon... " +
                                      "You instantly regret your decision and pick it " +
                                      "back up since this feature is not implemented...");
                    Console.WriteLine("Choose something else...");
                    break;

                // In case the input is 'i'
                case 'i':
                    // Displays a informative message to the user
                    Console.WriteLine("We regret to informe you that " +
                                      "this feature is not yet implemented...");
                    Console.WriteLine("Choose something else...");
                    break;
                }
            }
        }
Example #8
0
        /// <summary>
        /// The beginning of the program
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            // Initializing required stuff
            Program    program    = new Program();
            Credits    credits    = new Credits();
            HighScores highScores = new HighScores();
            GameCons   cons       = new GameCons();

            bool chosingMenu = true;

            // Loops while the player hasnt made a valid choice
            while (chosingMenu)
            {
                Console.WriteLine("\n1. New game\n2. High scores\n3. Credits\n4. Quit");
                // Converts the players choice into a ConsoleKeyInfo
                ConsoleKeyInfo choice = Console.ReadKey();
                // In case the "choice" is a Digit
                if (char.IsDigit(choice.KeyChar))
                {
                    // Switch for all the valid inputs
                    switch (choice.Key)
                    {
                    // In case the input is '1'
                    case ConsoleKey.D1:
                        // Initializes the global constants
                        cons.Cons();
                        // Starts the Game
                        program.NewGame(cons);
                        // Clears the console
                        Console.Clear();
                        chosingMenu = false;
                        break;

                    // In case the input is '2'
                    case ConsoleKey.D2:
                        // Shows the HighScores
                        highScores.ShowHighScores();
                        // Clears the console
                        Console.Clear();
                        break;

                    // In case the input is '3'
                    case ConsoleKey.D3:
                        // Shows the credits
                        credits.ShowCredits();
                        // Clears the console
                        Console.Clear();
                        break;

                    // In case the input is '4'
                    case ConsoleKey.D4:
                        // Clears the console
                        Console.Clear();
                        // Ends the program
                        Environment.Exit(0);
                        break;
                    }
                }
                // Clears the console
                else
                {
                    Console.Clear();
                }
            }
        }
Example #9
0
        /// <summary>
        /// Displays the world to the user
        /// </summary>
        /// <param name="cons">The global constants</param>
        /// <param name="world">The current world</param>
        public void Render(GameCons cons, World world)
        {
            // Clears the console
            Console.Clear();
            // Building a chart around the World
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine($"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +
                              $"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━" +
                              $"━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━" +
                              $"━━━━━━━━━┓");
            Console.WriteLine($"┃                                    Ro" +
                              $"gueLike                                         ┃    " +
                              $"        Stats            ┃                Legend     " +
                              $"         ┃");
            Console.WriteLine($"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +
                              $"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━" +
                              $"━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━" +
                              $"━━━━━━━━━┫");
            Console.WriteLine($"┃                                      " +
                              $"                                                ┃    " +
                              $"                         ┃                           " +
                              $"         ┃");
            Console.ForegroundColor = ConsoleColor.White;
            for (int row = 0; row < 8; row++)
            {
                for (int column = 0; column < 8; column++)
                {
                    /* Checks if theres a Tile wich contains a Player on the
                     * neighboring Tiles of the current Tile */
                    if ((row > 0 && world.array[row - 1, column].Contains(cons.player)) ||
                        (row < 7 && world.array[row + 1, column].Contains(cons.player)) ||
                        (column > 0 && world.array[row, column - 1].Contains(cons.player)) ||
                        (column < 7 && world.array[row, column + 1].Contains(cons.player)) ||
                        world.array[row, column].Contains(cons.player))
                    {
                        // Makes the current Tile visable
                        world.array[row, column].IsVisable = true;
                    }
                    if (column == 0)
                    {
                        // Building a chart around the World
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.Write("┃ ");
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    // If the Tile is visable
                    if (world.array[row, column].IsVisable)
                    {
                        // If the Tile contain a Player
                        if (world.array[row, column].Contains(cons.player))
                        {
                            // Displays the Players ToString()
                            Console.ForegroundColor = ConsoleColor.DarkYellow;
                            Console.Write(cons.player.ToString());
                            Console.ForegroundColor = ConsoleColor.White;

                            /* Gos throw every object with the intergace IGameObject
                             * thats inside the current list */
                            foreach (IGameObject thing in world.array[row, column])
                            {
                                // Excludes the Player off the things
                                if (thing != cons.player)
                                {
                                    // Displays the things ToString()
                                    Console.ForegroundColor = ConsoleColor.DarkYellow;
                                    Console.Write(thing.ToString());
                                    Console.ForegroundColor = ConsoleColor.White;
                                }
                            }
                        }
                        // If the Tile doesnt contain a Player
                        if (world.array[row, column].Contains(cons.player) == false)
                        {
                            /* Gos throw every object with the intergace IGameObject
                             * thats inside the current list */
                            foreach (IGameObject thing in world.array[row, column])
                            {
                                // Displays the things ToString()
                                Console.ForegroundColor = ConsoleColor.DarkYellow;
                                Console.Write(thing.ToString());
                                Console.ForegroundColor = ConsoleColor.White;
                            }
                        }
                        // If the current Tile has less than 4 objects do this code
                        if (world.array[row, column].Count() < 4)
                        {
                            // Excludes the number of objects inside the Tile from this for
                            for (int i = 4 - world.array[row, column].Count(); i > 0; i--)
                            {
                                // If theres an Exit inside the Tile
                                if (world.array[row, column].Contains(cons.exit))
                                {
                                }
                                // If theres no Exit inside the Tile
                                else
                                {
                                    // Displays a "Empty" Symbol
                                    Console.ForegroundColor = ConsoleColor.Blue;
                                    Console.Write("⚊");
                                    Console.ForegroundColor = ConsoleColor.White;
                                }
                            }
                        }
                    }
                    // If the Tile isnt visable
                    if (world.array[row, column].IsVisable == false)
                    {
                        // Display "Unexplored" Symbols
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("░░░░");
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    if (column < 7)
                    {
                        // Displays a separation between the Tiles
                        Console.Write(" - ");
                    }
                    if (column == 7)
                    {
                        if (row == 0)
                        {
                            // Building a chart around the World
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write($"┃    Current Level:     " +
                                          $"{cons.level:000}   ┃           Pla" +
                                          $"yer - {cons.player.Symbol}              ┃");
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        if (row == 1)
                        {
                            // Building a chart around the World
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write($"┃    Player HP:         " +
                                          $"{cons.player.Hp:000}   ┃          " +
                                          $"  Empty - ⚊              ┃");
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        if (row == 2)
                        {
                            // Building a chart around the World
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write($"┃    Weapon:    " +
                                          $"Rusty Spoon   ┃       Unexplored - " +
                                          $"░              ┃");
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        if (row == 3)
                        {
                            // Building a chart around the World
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write($"┃    Inventory:        " +
                                          $"099%   ┃              Map - " +
                                          $"{cons.map.Symbol}              ┃");
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        if (row == 4)
                        {
                            // Building a chart around the World
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write($"┃                             ┃" +
                                          $"             Trap - {cons.trap.Symbol}   " +
                                          $"           ┃");
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        if (row == 5)
                        {
                            // Building a chart around the World
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write($"┃                             ┃" +
                                          $"             Food - {cons.food.Symbol}   " +
                                          $"           ┃");
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        if (row == 6)
                        {
                            // Building a chart around the World
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write($"┃                             ┃" +
                                          $"      Neutral NPC - " +
                                          $"{cons.npcN.Symbol}              ┃");
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        if (row == 7)
                        {
                            // Building a chart around the World
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write($"┃                             ┃" +
                                          $"      Hostile NPC - " +
                                          $"{cons.npcH.Symbol}              ┃");
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        Console.Write("\n");
                    }
                }
                if (row < 7)
                {
                    // Building a chart around the World
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.Write("┃ ");
                    Console.ForegroundColor = ConsoleColor.White;
                    // Displays a separation between the Tiles
                    Console.Write("   |          |          |      " +
                                  "    |          |          |          |        " +
                                  "  |");
                    // Building a chart around the World
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("    ┃                           " +
                                      "  ┃                                    ┃");
                    Console.ForegroundColor = ConsoleColor.White;
                }
                if (row == 7)
                {
                    // Building a chart around the World
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine($"┃                              " +
                                      $"                                             " +
                                      $"           ┃                             ┃   " +
                                      $"                                 ┃");
                    Console.WriteLine($"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +
                                      $"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +
                                      $"━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━" +
                                      $"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
        }