Ajuda por favor

2 respostas
M

Olá pessoal sou novo em programação e tenho que fazer um jogo de cartas da seguinte forma:

Laboratório I
Trabalho prático

Jogo de cartas

Neste jogo podem participar dois ou mais jogadores (um é sempre o “banco” e os restantes são jogadores). Cada jogador retira sucessivamente cartas de um baralho, até o máximo de 6 cartas. O objetivo de cada jogador é conseguir conjuntos de cartas conforme descrito abaixo.

• seqüência da cartas
• trinca (3 cartas de mesmo número)
• pares (2 cartas de mesmo número)

O Jogo pressupõe a existência de um “banco” que deverá ser simulado pelo programa, assim como os jogadores. Observação: alguns alunos me consultaram e eu permiti que os jogadores fossem usuários do programa e não simulados pelo computador; podem escolher a forma como querem fazer esta parte do trabalho.

Regras do Jogo

No início do jogo, o “banqueiro” embaralha as cartas e as coloca em um monte com a face virada para baixo.

Cada jogador retira do monte uma carta e a guarda. Todos os jogadores fazem isto em cada jogada. Após a primeira rodada, os jogadores podem optar por retirar ou não mais uma carta de cima do monte. O número máximo de cartas que um jogador pode retirar, no total, é de 6 cartas.

A retirada de cartas termina quando não existir nenhum jogador que queira retirar mais cartas do monte.

Sugestão para lógica a ser empregada pelo jogador para decidir que tipo de conjunto de cartas ele deve formar:
• Quanto ele retira uma carta, ele deve inseri-la no conjunto de cartas que lhe trará mais pontos. Veja como será feita a pontuação logo abaixo. Por exemplo, se o jogador já tem uma determinada carta, e tira uma nova carta com o mesmo número, ele deve escolher montar uma dupla ou uma trinca. Quanto o jogador tiver duas opções, sendo que as duas lhe darão a mesma pontuação, deve ser feita uma escolha aleatória.

A seguir, jogadores mostram as suas cartas e é feita a soma da pontuação de cada jogador.

Um jogador é desclassificado se não conseguiu montar nenhum dos conjuntos de cartas previstos no jogo.

No início do jogo deve determinado o número de baralhos que serão usados durante o jogo.

Na tabela a seguir estão as regras para pontuação:

Conjunto Pontuação
seqüência da cartas Se o conjunto tiver 3 ou menos cartas:
1 ponto por carta
Se o conjunto tiver mais de 3 cartas:
2 pontos por carta
trinca (3 cartas de mesmo número) 2 pontos para cada trinca
par (3 cartas de mesmo número) 1 ponto para cada par

Na contabilização da pontuação final de cada jogador, as cartas que não fizerem parte de nenhum dos conjuntos de cartas previstos no jogo devem ocasionar a subtração de 1 ponto (por carta) do total de pontos do jogador.
O jogador com maior pontuação ganha o jogo!

Até agora criei 2 classes a Cartas e Baralho:

  • Classe Carta
public class Carta

{

protected int naipe = 0,nc = 0;
public Carta(int naipe, int numero)
{
    this.naipe = naipe;
    this.nc = numero;
}

public String obtemCarta()
{
    String ct ="Naipe: "+ naipe +"\n"+ "Número da carta: "+ nc;
    return ct;
}

}

  • Classe Baralho:
public class Baralho

{

private Carta baralho[];

private int np = 0, n = 0, topo = 0;

public Baralho(int nbar) // Construtor de Baralho

{

baralho = new Carta[52 * nbar];

int i=0;

for (int z = 1; z <= nbar; z++)

for (np = 1; np <= 4; np ++)

for (n = 1; n <= 13; n++)

{

baralho[i] = new Carta(np, n);

i++;

}

}

public void embaralhaCartas()

{

int pos;

Carta aux;

for (int i = 0; i < baralho.length; i++)

{

pos = 0 + (int) (Math.random() * baralho.length);

aux = baralho[i];

baralho[i] = baralho[pos];

baralho[pos] = aux;

}

}

public void retiraCartas()

{
Carta carta;
            carta = baralho[topo];
            topo++;
            System.out.println(carta.obtemCarta());
            
        }

}

2 Respostas

BrunoBastosPJ

E qual sua dúvida rapaz?

M

Minha dúvida é como fazer para que a classe jogador pegue a carta do baralho…

Valeu!!!

Criado 28 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 2
Participantes 2