2025-02-02 01:34:43 -05:00
|
|
|
namespace SimsPersonalityGenerator;
|
|
|
|
|
2025-02-07 04:04:44 -05:00
|
|
|
static class Sim
|
2025-02-02 01:34:43 -05:00
|
|
|
{
|
2025-02-07 04:04:44 -05:00
|
|
|
private const int Target = 8;
|
|
|
|
private static readonly Random Random = new Random();
|
|
|
|
|
|
|
|
public static void AssignPrioritizedTraits(Dictionary<string, int> traits, HashSet<string> prioritizedTraits)
|
2025-02-02 01:34:43 -05:00
|
|
|
{
|
2025-02-07 04:04:44 -05:00
|
|
|
Console.WriteLine("Assigning high values to prioritized traits...");
|
|
|
|
var remainingPoints = 50; // Sum of all traits should be <= 50
|
2025-02-02 01:34:43 -05:00
|
|
|
|
2025-02-07 04:04:44 -05:00
|
|
|
// Assign high values to prioritized traits (8, 9, or 10)
|
|
|
|
foreach (var trait in prioritizedTraits)
|
2025-02-02 01:34:43 -05:00
|
|
|
{
|
2025-02-07 04:04:44 -05:00
|
|
|
var value = Math.Min(Target + Random.Next(3), 10);
|
|
|
|
remainingPoints -= value;
|
|
|
|
traits[trait] = value;
|
|
|
|
Console.WriteLine($"Setting {trait} to {value}.");
|
2025-02-02 01:34:43 -05:00
|
|
|
}
|
2025-02-07 04:04:44 -05:00
|
|
|
|
|
|
|
// Adjust remaining traits
|
|
|
|
var nonPrioritizedTraits = traits.Keys.Except(prioritizedTraits).ToList();
|
|
|
|
foreach (var trait in nonPrioritizedTraits)
|
|
|
|
{
|
|
|
|
var maxPossibleValue = Math.Min(remainingPoints, 10);
|
|
|
|
var value = Random.Next(maxPossibleValue + 1);
|
|
|
|
remainingPoints -= value;
|
|
|
|
traits[trait] = value;
|
|
|
|
Console.WriteLine($"Setting {trait} to {value}.");
|
|
|
|
}
|
|
|
|
|
|
|
|
Console.WriteLine("Adjusted remaining traits to maintain balance.");
|
2025-02-02 01:34:43 -05:00
|
|
|
}
|
|
|
|
|
2025-02-07 04:04:44 -05:00
|
|
|
public static void AssignRandomTraits(Dictionary<string, int> traits)
|
2025-02-02 01:34:43 -05:00
|
|
|
{
|
2025-02-07 04:04:44 -05:00
|
|
|
Console.WriteLine("Generating random personality...");
|
|
|
|
var remainingPoints = 50; // Sum of all traits should be <= 50
|
2025-02-02 01:34:43 -05:00
|
|
|
|
2025-02-07 04:04:44 -05:00
|
|
|
foreach (var trait in traits.Keys)
|
2025-02-02 01:34:43 -05:00
|
|
|
{
|
2025-02-07 04:04:44 -05:00
|
|
|
var maxPossibleValue = Math.Min(remainingPoints, 10);
|
|
|
|
var value = Random.Next(maxPossibleValue + 1);
|
|
|
|
remainingPoints -= value;
|
|
|
|
traits[trait] = value;
|
|
|
|
Console.WriteLine($"Setting {trait} to {value}.");
|
2025-02-02 01:34:43 -05:00
|
|
|
}
|
2025-02-07 04:04:44 -05:00
|
|
|
|
|
|
|
Console.WriteLine("Random personality generation complete.");
|
2025-02-02 01:34:43 -05:00
|
|
|
}
|
|
|
|
|
2025-02-07 04:04:44 -05:00
|
|
|
public static void DisplayPersonality(Dictionary<string, int> traits)
|
2025-02-02 01:34:43 -05:00
|
|
|
{
|
2025-02-07 04:04:44 -05:00
|
|
|
Console.WriteLine("\nGenerated Sim Personality:");
|
|
|
|
foreach (var trait in traits)
|
2025-02-02 03:09:17 -05:00
|
|
|
{
|
2025-02-07 04:04:44 -05:00
|
|
|
Console.WriteLine($"{trait.Key}: {trait.Value}");
|
|
|
|
}
|
2025-02-02 01:34:43 -05:00
|
|
|
}
|
2025-02-07 04:04:44 -05:00
|
|
|
}
|