using System.Collections.Generic;
public class CharacterClass
public string Name { get; set; }
public string Description { get; set; }
Console.WriteLine($"Klasa: {Name}");
Console.WriteLine($"Opis: {Description}");
public string Name { get; set; }
public string Description { get; set; }
Console.WriteLine($"Rasa: {Name}");
Console.WriteLine($"Opis: {Description}");
public List<string> Skills { get; set; } = new List<string>();
Console.WriteLine("Umiejętności:");
foreach (var skill in Skills)
Console.WriteLine($"- {skill}");
public CharacterClass Class { get; set; }
public Race Race { get; set; }
public Abilities Abilities { get; set; }
Console.WriteLine("=== Szczegóły postaci ===");
Console.WriteLine("========================");
public interface ICharacterBuilder
void SetCharacterClass(string name, string description);
void SetRace(string name, string description);
void AddAbility(string ability);
Character BuildCharacter();
public class CharacterBuilder : ICharacterBuilder
private Character _character = new Character();
public void SetCharacterClass(string name, string description)
_character.Class = new CharacterClass { Name = name, Description = description };
public void SetRace(string name, string description)
_character.Race = new Race { Name = name, Description = description };
public void AddAbility(string ability)
if (_character.Abilities == null)
_character.Abilities = new Abilities();
_character.Abilities.Skills.Add(ability);
public Character BuildCharacter()
public class CharacterDirector
private ICharacterBuilder _builder;
public CharacterDirector(ICharacterBuilder builder)
public void ConstructCharacter()
Console.Write("Podaj nazwę klasy postaci: ");
string className = Console.ReadLine();
Console.Write("Podaj opis klasy: ");
string classDescription = Console.ReadLine();
_builder.SetCharacterClass(className, classDescription);
Console.Write("Podaj nazwę rasy postaci: ");
string raceName = Console.ReadLine();
Console.Write("Podaj opis rasy: ");
string raceDescription = Console.ReadLine();
_builder.SetRace(raceName, raceDescription);
Console.Write("Dodaj umiejętność (lub wpisz 'koniec', aby zakończyć): ");
string ability = Console.ReadLine();
if (ability.ToLower() == "koniec")
_builder.AddAbility(ability);
static void Main(string[] args)
Console.WriteLine("Witaj w kreatorze postaci RPG!");
ICharacterBuilder builder = new CharacterBuilder();
CharacterDirector director = new CharacterDirector(builder);
director.ConstructCharacter();
Character character = builder.BuildCharacter();
Console.WriteLine("\nTwoja postać została stworzona:");