Advertisement
Krythic

Character Name Generator (ChatGPT)

May 8th, 2024
1,055
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.15 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. public class NameGenerator
  5. {
  6.     private HashSet<string> maleFirstNames;
  7.     private HashSet<string> femaleFirstNames;
  8.     private HashSet<string> surnames;
  9.     private Random rnd;
  10.  
  11.     public NameGenerator(Random random = null)
  12.     {
  13.         maleFirstNames = new HashSet<string>
  14.         {
  15.             "Aldric", "Branthor", "Cedric", "Darian", "Elric", "Finnian", "Gareth", "Haldor", "Ithilien", "Jareth",
  16.             "Kael", "Lorcan", "Marius", "Nathair", "Orin", "Perrin", "Quillen", "Roran", "Soren", "Talon", "Ulfar",
  17.             "Valen", "Wulfric", "Xavier", "Yorick", "Zephyr", "Auron", "Benedict", "Corvus", "Dexter", "Eldric",
  18.             "Faelan", "Gideon", "Hawthorne", "Ignatius", "Jasper", "Kieran", "Lysander", "Magnus", "Nikolai",
  19.             "Oberon", "Percival", "Quentin", "Ryder", "Sebastian", "Thaddeus", "Ulric", "Vance", "Wesley", "Xander",
  20.             "Yarrow", "Zander", "Asher", "Baelor", "Cassius", "Dorian", "Ezekiel", "Finnegan", "Garrick", "Hadrian",
  21.             "Isidore", "Jace", "Kellan", "Lucian", "Malachi", "Nolan", "Osiris", "Peregrine", "Quincy", "Rhys",
  22.             "Silas", "Theodore", "Ulysses", "Varian", "Wilder", "Xavian", "Yorath", "Zaire", "Atlas", "Bastian",
  23.             "Caspian", "Dante", "Elias", "Fabian", "Gavin", "Hugo", "Isaac", "Jaxon", "Kai", "Lachlan", "Milo",
  24.             "Nico", "Orion", "Paxton", "Ronan", "Sawyer", "Theo", "Uriah", "Vincent", "Wyatt", "Xander", "Yael", "Zayn"
  25.         };
  26.         femaleFirstNames = new HashSet<string>
  27.         {
  28.             "Aria", "Briar", "Celestia", "Dahlia", "Elara", "Fiona", "Genevieve", "Hazel", "Isolde", "Jasmine",
  29.             "Kiera", "Luna", "Maeve", "Nyx", "Ophelia", "Phaedra", "Quinn", "Rosalind", "Seraphina", "Thalia",
  30.             "Ursula", "Violet", "Willow", "Xanthe", "Yara", "Zara", "Aurora", "Belle", "Cassandra", "Daphne",
  31.             "Eleanor", "Felicity", "Guinevere", "Helena", "Ivy", "Juliet", "Kira", "Lyra", "Morgana", "Nova",
  32.             "Odette", "Persephone", "Quintessa", "Rowan", "Serenity", "Talia", "Uma", "Vivienne", "Wren", "Xena",
  33.             "Yasmine", "Zephyra", "Arabella", "Bryony", "Calista", "Delilah", "Elowen", "Fawn", "Gwendolyn",
  34.             "Hermione", "Isadora", "Jessamine", "Kiara", "Lilith", "Minerva", "Niamh", "Oona", "Pandora",
  35.             "Quiana", "Rhiannon", "Saoirse", "Tamsin", "Undine", "Vespera", "Winter", "Xiomara", "Yseult",
  36.             "Zephyrine", "Athena", "Bronwyn", "Cordelia", "Drusilla", "Evangeline", "Fleur", "Giselle", "Hestia",
  37.             "Ingrid", "Jocasta", "Kalliope", "Lavinia", "Mireille", "Nerissa", "Olympia", "Pallas", "Querida",
  38.             "Rowena", "Sapphira", "Tanith", "Ursuline", "Valkyrie", "Winifred", "Xylia", "Ygritte", "Zelda"
  39.         };
  40.         surnames = new HashSet<string>
  41.         {
  42.             "Aldaine", "Blackthorn", "Crestfall", "Dreadmoor", "Ebonwood", "Frostbane", "Goldenvale", "Hawkridge",
  43.             "Ironheart", "Jadeborn", "Kingsley", "Lorekeeper", "Moonshadow", "Nightfall", "Oakenshield", "Proudfoot",
  44.             "Quicksilver", "Ravenwood", "Stormcloak", "Thornblade", "Underhill", "Valeheart", "Whitewood", "Xanadu",
  45.             "Yewshade", "Zephyrblade", "Ashenbrook", "Brightwood", "Copperfield", "Duskwood", "Emberstone", "Firesong",
  46.             "Griffith", "Holloway", "Ivoryfang", "Juniper", "Kingsgrave", "Lionheart", "Mistwood", "Netherwood",
  47.             "Oakenspear", "Pinehurst", "Quillson", "Redwood", "Silverthorn", "Stonewall", "Talltree", "Umberfall",
  48.             "Valerian", "Wildewood", "Xandros", "Yarrowfield", "Zephyrcrest", "Avalanche", "Blackwater", "Crimsonwind",
  49.             "Darkwood", "Eversong", "Frostwind", "Goldleaf", "Hawthorn", "Ironclad", "Jadewind", "Kingsmark",
  50.             "Lunarfall", "Mistborn", "Nighthawk", "Oathbreaker", "Pinecrest", "Quicksand", "Ravenclaw", "Shadowbane",
  51.             "Starfall", "Thunderheart", "Underwood", "Valkyrie", "Winterbourne", "Xanathar", "Yellowknife",
  52.             "Zephyrwind", "Arcane", "Bloodmoon", "Crowfeather", "Dawnblade", "Elmwood", "Frostfang", "Goldenleaf",
  53.             "Hollowgrave", "Ironwood", "Jadehorn", "Knightshade", "Lioncrest", "Morningsong", "Nightraven", "Oceansong",
  54.             "Phoenix", "Quicksilver", "Ravensong", "Shadowbrook", "Stagheart", "Twilight", "Umbra", "Viper", "Wintersong",
  55.             "Xavier", "Yew", "Zephyr", "Alder", "Briar", "Cypress", "Dusk", "Ember", "Frost", "Gale", "Holly", "Ivy",
  56.             "Juniper", "Lark", "Moss", "Nightshade", "Orchid", "Pine", "Quill", "Rose", "Sage", "Thorn", "Violet",
  57.             "Willow", "Yarrow", "Zinnia", "Ash", "Bramble", "Dawn", "Echo", "Fawn", "Glen", "Hazel", "Iris", "Jade",
  58.             "Kestrel", "Luna", "Meadow", "Nova", "Opal", "Petal", "Rain", "Sky", "Tansy", "Vale", "Wren", "Yew", "Zephyr"
  59.         };
  60.         rnd = random ?? new Random();
  61.     }
  62.  
  63.     public void AddMaleFirstName(string name)
  64.     {
  65.         maleFirstNames.Add(name);
  66.     }
  67.  
  68.     public void AddFemaleFirstName(string name)
  69.     {
  70.         femaleFirstNames.Add(name);
  71.     }
  72.  
  73.     public void AddSurname(string surname)
  74.     {
  75.         surnames.Add(surname);
  76.     }
  77.  
  78.     public string GenerateMaleFirstName()
  79.     {
  80.         if (maleFirstNames.Count == 0)
  81.             throw new InvalidOperationException("No male first names available.");
  82.         int index = rnd.Next(maleFirstNames.Count);
  83.         return maleFirstNames.ElementAt(index);
  84.     }
  85.  
  86.     public string GenerateFemaleFirstName()
  87.     {
  88.         if (femaleFirstNames.Count == 0)
  89.             throw new InvalidOperationException("No female first names available.");
  90.         int index = rnd.Next(femaleFirstNames.Count);
  91.         return femaleFirstNames.ElementAt(index);
  92.     }
  93.  
  94.     public string GenerateSurname()
  95.     {
  96.         if (surnames.Count == 0)
  97.             throw new InvalidOperationException("No surnames available.");
  98.         int index = rnd.Next(surnames.Count);
  99.         return surnames.ElementAt(index);
  100.     }
  101.  
  102.     public string GenerateFullName(bool isMale)
  103.     {
  104.         string firstName = isMale ? GenerateMaleFirstName() : GenerateFemaleFirstName();
  105.         string surname = GenerateSurname();
  106.         return $"{firstName} {surname}";
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement