Exemple #1
0
        static void Main(string[] args)

        {
            ShipFocus someShip = new ShipFocus();

            Menu.MainMenu(someShip);
        }
        /**********************
         * Menu method definitions
         *
         *
         *
         * */
        /*
         * static void menuZero(ShipFocus tS)
         * {
         *   Console.WriteLine("You punched your ship, and not only damaged your hand," +
         *       " but you also damaged your ship!");
         *   Console.WriteLine("On a scale of 1 to 10, how bad does your hand hurt?");
         *
         *   Random rand = new Random();
         *   var input = Console.ReadLine();
         *   var pain = 0;
         *   var r = rand.Next(1, 10);
         *
         *   try
         *   {
         *       int.TryParse(input, out pain);
         *   }
         *   catch (FormatException e)
         *   {
         *       Console.WriteLine(e.Message);
         *       Console.WriteLine("Returning to main menu");
         *       Console.ReadLine();
         *       Console.Clear();
         *       MainMenu(tS);
         *   }
         *  // I have narrowed it down to this line right here
         *   // I am still debugging but this is where baseDamage is not being set.
         *   // I will be back for it
         *
         *   tS.setBaseDamage((pain * r));
         *
         *
         *   Console.WriteLine($"Base damage should have been set {tS.getDamageLevel()}");
         *   Console.ReadLine();
         *   tS.shipInfo();
         *
         *
         *   Console.ReadLine();
         *   Console.Clear();
         *   MainMenu(tS);
         *
         * }
         */

        static void menuOne(ShipFocus tS)
        {
            Console.WriteLine("Ship Information menu");
            tS.shipInfo();
            //tS.wasShipDestroyed();
            Console.ReadLine();
            Console.Clear();
            MainMenu(tS);
            //  MainMenu();
        }
        static void menuSeven(ShipFocus tS)
        {
            Console.WriteLine("Welcome to the Armor selection menu");
            //Console.ReadLine();
            int userArmor = 0;

            try
            {
                Console.WriteLine("Enter number of Armor Layers, 1-15: ");
                userArmor = Int32.Parse(Console.ReadLine());
                if (userArmor <= 0)
                {
                    Console.WriteLine("You really need at least some armor. You are going into space after all.");
                    Console.ReadLine();
                    Console.Clear();
                    menuSeven(tS);
                }
                else if (userArmor > 15)
                {
                    Console.WriteLine("We can't afford that much armor on one ship!");
                    Console.ReadLine();
                    Console.Clear();
                    menuSeven(tS);
                }
                else
                {
                    Console.WriteLine("Yayy!! Armor added to ship.");
                    tS.armor = userArmor;
                    Console.ReadLine();
                    Console.Clear();
                    MainMenu(tS);
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
                Console.Clear();
                MainMenu(tS);
            }
            catch (OverflowException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Please enter a valid integer value");
                Console.ReadLine();
                Console.Clear();
                menuSeven(tS);
            }
        }
        static void menuTwo(ShipFocus tS)
        {
            int userENchoice = 0;

            Console.WriteLine("Engine selection menu");
            try
            {
                Console.WriteLine("Please enter an engine level 1-5");
                userENchoice = Int32.Parse(Console.ReadLine());
                switch (userENchoice)
                {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                    tS.engine = userENchoice;
                    Console.WriteLine("Engine choice acceptable");
                    Console.ReadLine();
                    Console.Clear();
                    MainMenu(tS);
                    break;

                default:
                    Console.WriteLine("Sorry we don't offer engines with that level");
                    Console.WriteLine("Please enter a new value");
                    Console.ReadLine();
                    Console.Clear();
                    menuTwo(tS);
                    break;
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Please enter an integer value");
                Console.ReadLine();
                Console.Clear();
                menuTwo(tS);
            }
            catch (OverflowException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Please enter a valid integer value");
                Console.ReadLine();
                Console.Clear();
                menuTwo(tS);
            }
        }
        static void menuSix(ShipFocus tS)
        {
            Console.WriteLine("Welcome to the Shield selection menu");
            int userShields = 0;

            try
            {
                Console.WriteLine("Enter number of Shield Emitters, 1-15: ");
                userShields = Int32.Parse(Console.ReadLine());
                if (userShields <= 0)
                {
                    Console.WriteLine("You need atleast one shield emitter");
                    Console.ReadLine();
                    Console.Clear();
                    menuSix(tS);
                }
                else if (userShields > 15)
                {
                    Console.WriteLine("We can't afford that many shield emitters on one ship!");
                    Console.ReadLine();
                    Console.Clear();
                    menuSix(tS);
                }
                else
                {
                    Console.WriteLine("Yayy!! Shields equipped.");
                    tS.shields = userShields;
                    Console.ReadLine();
                    Console.Clear();
                    MainMenu(tS);
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
                Console.Clear();
                MainMenu(tS);
            }
            catch (OverflowException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Please enter a valid integer value");
                Console.ReadLine();
                Console.Clear();
                menuSix(tS);
            }
        }
        static void menuFour(ShipFocus tS)
        {
            int userWeapons = 0;

            Console.WriteLine("Welcome to the weapon menu!");
            Console.WriteLine("Enter how many weapon banks are needed, 1-100:");
            try
            {
                userWeapons = Int32.Parse(Console.ReadLine());
                if (userWeapons <= 0)
                {
                    Console.WriteLine("You need at least one weapon!");
                    Console.ReadLine();
                    Console.Clear();
                    menuFour(tS);
                }
                else if (userWeapons > 100)
                {
                    Console.WriteLine("Whoa, you expect us to pay for that many weapons?? Think again...");
                    Console.ReadLine();
                    Console.Clear();
                    menuFour(tS);
                }
                else
                {
                    tS.weapons = userWeapons;
                    Console.WriteLine("Weapon Choice Acceptable");
                    Console.ReadLine();
                    Console.Clear();
                    MainMenu(tS);
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
                Console.Clear();
                menuFour(tS);
            }
            catch (OverflowException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Please enter a valid integer value");
                Console.ReadLine();
                Console.Clear();
                menuFour(tS);
            }
        }
        static void menuEight(ShipFocus tS)
        {
            int userReset = 0;

            Console.WriteLine("Would you like to reset ship values to default?\n Yes(1) or No(0)");
            try
            {
                userReset = Int32.Parse(Console.ReadLine());
                if (userReset > 1 || userReset < 0)
                {
                    Console.WriteLine("Not a valid entry");
                    Console.ReadLine();
                    Console.Clear();
                    menuEight(tS);
                }
                else if (userReset == 1)
                {
                    tS.setValuesToDefault();
                    Console.WriteLine("Ship values reset to default");
                    Console.ReadLine();
                    Console.Clear();
                    MainMenu(tS);
                }
                else
                {
                    Console.WriteLine("Ship values not reset to default");
                    Console.ReadLine();
                    Console.Clear();
                    MainMenu(tS);
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
                Console.Clear();
                MainMenu(tS);
            }
            catch (OverflowException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Please enter a valid integer value");
                Console.ReadLine();
                Console.Clear();
                menuEight(tS);
            }
        }
        static void menuThree(ShipFocus tS)
        {
            int userCrewComp = 0;

            try
            {
                Console.WriteLine("Enter how many crew members you need, 1-1000:");
                userCrewComp = Int32.Parse(Console.ReadLine());
                if (userCrewComp <= 0 || userCrewComp > 1000)
                {
                    Console.WriteLine("{0} - this is not a valid input", userCrewComp);
                    MainMenu(tS);
                    Console.Clear();
                }
                else
                {
                    tS.crewComp = userCrewComp;
                    Console.WriteLine("Crew compliment acceptable");
                    Console.ReadLine();
                    Console.Clear();
                    MainMenu(tS);
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
                Console.Clear();
                menuThree(tS);
            }
            catch (OverflowException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Please enter a valid integer value");
                Console.ReadLine();
                Console.Clear();
                menuThree(tS);
            }
        }
        static void menuFive(ShipFocus tS)
        {
            int userHullSize = 0;

            Console.WriteLine("Welcome to the Ship Hull selection menu");

            try
            {
                Console.WriteLine("Enter ship hull size: \nCorvette(1)\nDestroyer(2)\nCruiser(3)\nBattleship(4)\nDreadnought(5)");

                userHullSize = Int32.Parse(Console.ReadLine());
                switch (userHullSize)
                {
                case 0:
                    Console.WriteLine("0 does not correspond to a hull size");
                    Console.ReadLine();
                    Console.Clear();
                    menuSix(tS);
                    break;

                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                    if (tS.crewComp == 0)
                    {
                        Console.WriteLine("Please enter number of needed crew members first");
                        Console.ReadLine();
                        Console.Clear();
                        menuThree(tS);
                    }
                    else if (tS.crewComp > 300 & userHullSize < 3)
                    {
                        Console.WriteLine("Your going to need a larger hull");
                        Console.ReadLine();
                        Console.Clear();
                        menuFive(tS);
                    }
                    else if (tS.crewComp > 500 & userHullSize < 4)
                    {
                        Console.WriteLine("Your going to need a larger hull");
                        Console.ReadLine();
                        Console.Clear();
                        menuFive(tS);
                    }
                    else
                    {
                        tS.shipHullSize = userHullSize;
                        Console.WriteLine("Hull size selected");
                        Console.ReadLine();
                        Console.Clear();
                        MainMenu(tS);
                    }
                    break;

                default:
                    Console.WriteLine("Not a valid entry");
                    Console.ReadLine();
                    Console.Clear();
                    menuSix(tS);
                    break;
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
                Console.Clear();
                MainMenu(tS);
            }
            catch (OverflowException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Please enter a valid integer value");
                Console.ReadLine();
                Console.Clear();
                menuFive(tS);
            }
        }
        public static void MainMenu(ShipFocus ship)
        {
            string userChoice;

            if (mCount == 0)
            {
                Console.WriteLine("Welcome to the Warp Ship Designer Application\nWhile using the application and if does not seem to continue\nPress Enter to continue:");
                Console.WriteLine("Thank you for trying the app. I hope you enjoy!");
                mCount = 1;
                Console.ReadLine();
                Console.Clear();
            }
            Console.WriteLine("Please pick a menu option");
            Console.WriteLine("View current ship information(1)");
            Console.WriteLine("Select ship engine(2)");
            Console.WriteLine("Select Crew Compliment(3)");
            Console.WriteLine("Select Weapon Compliment(4)");
            Console.WriteLine("Ship Hull Size(5)");
            Console.WriteLine("Shielding(6)");
            Console.WriteLine("Armor Thickness(7)");
            Console.WriteLine("Reset Ship Values(8)");
            Console.WriteLine("Exit App(9)");

            userChoice = Console.ReadLine();
            //Make sure the user enters an integer
            try
            {
                menuCounter = Int32.Parse(userChoice);
            }
            catch (FormatException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Returning to main menu");
                Console.ReadLine();
                Console.Clear();
                MainMenu(ship);
            }
            //take the user to the selected menu option
            switch (menuCounter)
            {
            case 1:
                menuOne(ship);
                Console.Clear();
                break;

            case 2:
                menuTwo(ship);
                Console.Clear();
                break;

            case 3:
                menuThree(ship);
                Console.Clear();
                break;

            case 4:
                menuFour(ship);
                Console.Clear();
                break;

            case 5:
                menuFive(ship);
                Console.Clear();
                break;

            case 6:
                menuSix(ship);
                Console.Clear();
                break;

            case 7:
                menuSeven(ship);
                Console.Clear();
                break;

            case 8:
                menuEight(ship);
                Console.Clear();
                break;

            case 9:
                Console.WriteLine("Thanks for trying the app! Now exiting");
                Console.ReadLine();
                break;

            default:
                Console.WriteLine("The value you have entered is not a menu option");
                Console.ReadLine();
                menuCounter = 0;
                Console.Clear();
                MainMenu(ship);
                // MainMenu();
                break;
            }
        }