Que tipo de padrões e idéias de design se pode usar para criar uma estrutura de jogo de cartas de propósito geral?
Isso decorre de que eu tentei construir um clone do popular jogo de Steve Jackson "Munchkin". Por causa da natureza desse jogo, acabei tendo que codificar tantas funcionalidades de cartão que o desenvolvimento se tornou caótico e complexo. Eu queria criar algo geral, mas acabei com apenas muitas classes com muitas funções substituídas e alternar instruções para determinar o comportamento.
Eu estava curioso para saber como alguém com mais experiência em design lidaria com essa tarefa de construir uma estrutura de jogo de cartas de propósito geral, ou pelo menos algo que pudesse ser estendido. Ou é melhor que, se eu quiser fazer uma simulação de um jogo de cartas como o Munchkin, estou preso em criar uma estrutura específica.
Eu gostaria de usar c #.
EDITAR
Eu gostaria de esclarecer um pouco do que eu gostaria de alcançar. Eu gostaria de uma estrutura na qual eu possa implementar basicamente fases com funcionalidade personalizada (fase 1: cartões de compra, fase 2: aplicar regras de manutenção, fase 3: cartões de jogo, fase 4: resolução, etc.).
Penso que definir um conjunto de regras seria sábio, o que seria combinado com as cartas e as fases.
Então, as cartas seriam definidas e, suponho, vinculadas às regras, por exemplo, uma regra poderia ser "Durante a fase de manutenção, perca 1 ficha". No entanto, uma carta que o jogador possui pode fornecer "Não perca nenhuma ficha durante a fase de manutenção". Portanto, seria bom poder amarrar isso juntos, mas dentro das entranhas da estrutura.
Suponho que isso também esteja fora do meu alcance.