Example #1
0
        static void DisplayFilterByAttitude(List <Monster> monsters)
        {
            List <Monster> filteredMonsters = new List <Monster>();

            Monster.EmotionalState selectedAttitude = Monster.EmotionalState.happy;

            DisplayScreenHeader("Filter by Attitude");

            //
            // add monsters with the selected attitude to a new list
            //
            //foreach (Monster monster in monsters)
            //{
            //    if (monster.Attitude == selectedAttitude)
            //    {
            //        filteredMonsters.Add(monster);
            //    }
            //}

            //
            // LINQ examples
            //
            filteredMonsters = monsters.Where(m => m.Attitude == selectedAttitude).ToList();
            filteredMonsters = filteredMonsters.OrderBy(m => m.Name).ToList();

            //
            // display new list
            //
            Console.WriteLine($"{selectedAttitude} Monsters");
            Console.WriteLine("\t***************************");
            foreach (Monster monster in filteredMonsters)
            {
                MonsterInfo(monster);
                Console.WriteLine();
            }

            DisplayContinuePrompt();
        }
Example #2
0
        /// <summary>
        /// SCREEN: add a monster
        /// </summary>
        /// <param name="monsters">list of monsters</param>
        static void DisplayAddMonster(List <Monster> monsters)
        {
            Monster newMonster          = new Monster();
            bool    ValidNumber         = false;
            bool    ValidEmotionalState = false;
            bool    ValidTribe          = false;
            bool    active = false;
            int     age    = 0;

            Monster.EmotionalState attitude = default;
            Monster.Society        tribe    = default;
            string userInput;

            DisplayScreenHeader("Add Monster");

            //
            // add monster object property values
            //
            //
            // add monster name
            //
            Console.Write("\tName: ");
            newMonster.Name = Console.ReadLine();

            //
            // add monster age. Validate user input
            //
            while (!ValidNumber)
            {
                Console.Write("\tAge: ");

                if (int.TryParse(Console.ReadLine(), out age))
                {
                    ValidNumber = true;
                }
                else
                {
                    Console.WriteLine("Not a number. Please enter a number.");
                }
            }

            newMonster.Age = age;

            //
            // add monster emotional state. Validate input
            //
            while (!ValidEmotionalState)
            {
                Console.Write("\tAttitude: ");
                if (Enum.TryParse(Console.ReadLine(), out attitude))
                {
                    ValidEmotionalState = true;
                }
                else
                {
                    Console.WriteLine("Not an acceptable emotional state. Please try again.");
                }
            }

            newMonster.Attitude = attitude;

            while (!ValidTribe)
            {
                Console.Write("\tTribe: ");
                if (Enum.TryParse(Console.ReadLine(), out tribe))
                {
                    ValidTribe = true;
                }
                else
                {
                    Console.WriteLine("Not a valid tribe. Please try again.");
                }
            }

            newMonster.Tribe = tribe;

            Console.Write("\tActive State (active or inactive): ");
            userInput = Console.ReadLine().ToLower().ToLower();

            switch (userInput)
            {
            case "active":
                active = true;
                break;

            default:
                active = false;
                break;
            }
            newMonster.Active = active;

            //
            // echo new monster properties
            //
            Console.WriteLine();
            Console.WriteLine("\tNew Monster's Properties");
            Console.WriteLine("\t-------------");
            MonsterInfo(newMonster);
            Console.WriteLine();
            Console.WriteLine("\t-------------");

            DisplayContinuePrompt();

            monsters.Add(newMonster);
        }