Inquiridor
Criar tipos que correspondam cartas de baralho e criar um jogo com elas

Pergunta
-
Pessoal, peguei esse desafio e confesso que não sei por onde começar.
1) Crie um tipo que corresponde a uma carta de um baralho que deve conter no mínimo:
* a) face (Ás, valete, 1, 2 etc)
* b) naipe (copas, espada etc)
* Sendo que ao comparar duas cartas de mesma face e mesmo naipe elas sejam consideradas iguais mesmo que sejam instancias distintas
*
* 2) Crie um tipo que corresponde a um baralho de cartas (usando o tipo criada no item 1) com no mínimo os seguintes comportamentos:
* a) Pegar a primeira carta
* b) Embaralhar
* c) Pegar N cartas do topo
* d) Devolver todas as cartas
*
* 3) Usando os tipos criados nos itens anteriores crie um jogo de sua escolha contanto que os seguintes itens sejam cumpridos:
* a) Receber input de 1 jogador pelo console
* b) Ter no mínimo uma condição de vitória e uma de derrota
* É aceitavel que o programa termine ao atingir alguma condição de vitória/derrota
* Enumere as regras do jogoClaro que não quero postar nada aqui sem antes tentar. Na minha cabeça pensei em criar 4 classes que representem os naipes. Porem as faces das cartas é que são um problema. Pensei em criar uma Interface que me sugerisse os métodos de: CompararCartas, EmbaralharCartas(Randômico) e etc. Com relação as faces, será que são properties das classes dos Naipes? Essa é minha dúvida na construção. Em realidade estou pedindo aqui uma orientação, não gostaria que postassem códigos, mas que me dessem uma orientação em como prosseguir no resolução do problema. Desde já, obrigado. Sei que é longo demais, tenho a consciência que as respostas não virão todas de uma vez e não tão rápido.
Todas as Respostas
-
Comecei assim:
public class Baralho
{
public Baralho()
{ }
public enum Naipe
{
Copas = 1,
Paus = 2,
Ouros = 3,
Espada = 4
}
public enum Valor
{
As = 1,
Dois = 2,
Tres = 3,
Quatro = 4,
Cinco = 5,
Seis = 6,
Sete = 7,
Oito = 8,
Nove = 9,
Dez = 10,
Dama = 11,
Valete = 12,
Rei = 13
}
public void Embaralhar()
{
}
}
}Mas não consigo caminhar mais. Tá dando um branco tremendo. Não consigo pegar uma linha de raciocínio.
-
-
Olá Daniel, boa noite. Em realidade eu preciso fazer o que está proposto no meu primeiro post. SE eu conseguir fazer um embaralhamento, acho que posso caminhar um pouco mais, mas tá osso resolver isso. Criar as cartas e embaralhar ou retirar uma carta do baralho.
-
Olá Daniel, boa noite. Em realidade eu preciso fazer o que está proposto no meu primeiro post. SE eu conseguir fazer um embaralhamento, acho que posso caminhar um pouco mais, mas tá osso resolver isso. Criar as cartas e embaralhar ou retirar uma carta do baralho.
Olá, supondo que obtenha sua classe com um List<T> contendo todas suas cartas veja :
Carta PegarPrimeiraCarta() { return Cartas.First(); }
Supondo que Cartas seria um List<Carta> .
List<Carta> GetAll() { return Cartas.ToList(); }
Buscando todas as cartas.