namespace SimsPersonalityGenerator
public int Niceness { get; private set; }
public int Neatness { get; private set; }
public int Outgoingness { get; private set; }
public int Activeness { get; private set; }
public int Playfulness { get; private set; }
GenerateRandomPersonality();
public void SetTraitHigher(string trait, bool isHigh)
Niceness = Math.Min(10, Neatness + 5);
Neatness = Math.Min(10, Niceness + 5);
Neatness = Math.Min(10, Activeness + 5);
Activeness = Math.Min(10, Neatness + 5);
Outgoingness = Math.Min(10, Playfulness + 5);
Playfulness = Math.Min(10, Outgoingness + 5);
Activeness = Math.Min(10, Niceness + 5);
Niceness = Math.Min(10, Activeness + 5);
Playfulness = Math.Min(10, Outgoingness + 5);
Outgoingness = Math.Min(10, Playfulness + 5);
throw new ArgumentException("Invalid trait name.");
private void GenerateRandomPersonality()
Random rand = new Random();
Niceness = rand.Next(11);
Neatness = rand.Next(11);
Outgoingness = rand.Next(11);
Activeness = rand.Next(11);
Playfulness = rand.Next(11);
int totalSum = Niceness + Neatness + Outgoingness + Activeness + Playfulness;
int overage = totalSum - 50;
int traitToReduce = rand.Next(5);
case 0: Niceness -= Math.Min(Niceness, overage); break;
case 1: Neatness -= Math.Min(Neatness, overage); break;
case 2: Outgoingness -= Math.Min(Outgoingness, overage); break;
case 3: Activeness -= Math.Min(Activeness, overage); break;
case 4: Playfulness -= Math.Min(Playfulness, overage); break;
public override string ToString()
return $"Niceness: {Niceness}, Neatness: {Neatness}, Outgoingness: {Outgoingness}, Activeness: {Activeness}, Playfulness: {Playfulness}";
static void Main(string[] args)
Character character = new Character();
Console.WriteLine("Generated Personality:");
Console.WriteLine(character);
Console.WriteLine("\nSetting Niceness higher...");
character.SetTraitHigher("niceness", true);
Console.WriteLine(character);
Console.WriteLine("\nSetting Neatness lower...");
character.SetTraitHigher("neatness", false);
Console.WriteLine(character);