using SimsPersonalityGenerator; var isFinishedSession = false; void GenerateTraits() { Console.WriteLine("You can prioritize one or more traits to be above 8 by entering them."); Console.Write("Enter traits separated by commas (e.g., Outgoing, Nice), or press Enter to generate a random personality: "); var prioritizedTraitsInput = Console.ReadLine()?.Trim(); var traits = new Dictionary { { "Outgoing", 0 }, { "Nice", 0 }, { "Playful", 0 }, { "Neat", 0 }, { "Active", 0 } }; // Process the prioritized traits var prioritizedTraits = new HashSet(prioritizedTraitsInput.Split(',') .Select(t => t.Trim()).Where(t => !string.IsNullOrEmpty(t) && traits.ContainsKey(t))); if (prioritizedTraits.Count > 0) { Sim.AssignPrioritizedTraits(traits, prioritizedTraits); } else { Sim.AssignRandomTraits(traits); } Sim.DisplayPersonality(traits); isFinishedSession = true; SessionManager(); } string? GetUserInput(string message) { // Prompt the user to generate a random personality Console.WriteLine(message); // Read the user input var input = Console.ReadLine(); return input; } // Method to launch a new session void SessionManager() { if (!isFinishedSession) Console.WriteLine("Welcome to the Sim Personality Generator!"); var message = "Would you like to generate a random personality? [y/n]"; if (isFinishedSession) message = "Would you like to generate a new personality? [y/n]"; var input = GetUserInput(message); // Convert the input to lowercase to handle case insensitivity switch (input?.ToLower()) { case "y": // If the user enters 'y' if (isFinishedSession) isFinishedSession = false; // Clear the console for a fresh start Console.Clear(); // Generate traits (presumably some form of random data) GenerateTraits(); break; default: // If the user enters anything other than 'y' // Exit the application with the current exit code Environment.Exit(Environment.ExitCode); break; } } SessionManager();