none
Criar tipos que correspondam cartas de baralho e criar um jogo com elas RRS feed

  • 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 jogo

    Claro 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.

    terça-feira, 16 de junho de 2015 12:04

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.

    quinta-feira, 18 de junho de 2015 12:36
  • Olá pnet,

     basicamente você deve criar propriedade de seu enum, no embaralhar pode utilizar Random, em pegar cartas vai retornar um array ou List<T>, e qual seria o jogo ? Qualquer um ?

    quinta-feira, 18 de junho de 2015 19:45
  • 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.
    quinta-feira, 18 de junho de 2015 22:14
  • 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.

    segunda-feira, 22 de junho de 2015 12:51