Ajuda

1 resposta
M

Olá pessoal estou fazendo um jogo de cartas, mas parei numa parte que consigo achar o caminho…

O problema que tenho que resolver é esse:

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

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!

Primeira mente criei essas classes:

public class Carta

{

protected int naipe = 0,nc = 0;
public Carta(int naipe, int numero)

{

this.naipe = naipe;

this.nc = numero;

}

public int obtemValorCarta()

{

return nc;

}
public String obtemCarta()

{

return naipe +" "+ nc;

}

public String mostraDados()

{

String ct = "Naipe : + naipe + "+Valor da carta: + nc+”\n;

return ct;

}

}
public class Baralho

{

protected Carta baralho[];

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

public Baralho(int nbar)

{

baralho = new Carta[52 * nbar];

int i=0;

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

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

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

{

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

i++;

}

}

public void embaralhaCartas()

{

Carta aux;

int pos;

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 Carta retiraCartas()

{

Carta ct;

ct = baralho[topo];

topo++;

return ct;

}

}
public class Jogador

{

protected Carta cartas[];

protected Jogador jog[];

private int i = 0;

public Jogador(int nj)

{

cartas = new Carta[6];

jog = new Jogador[nj];

}
public void pegaCarta(Baralho b)

{

cartas[i] = b.retiraCartas();

i++;

}

}
public class Jogo

{

protected Baralho b;

protected Jogador jog[];

protected int i = 0;
public void Jogo(int nb, int nj)

{

jog = new Jogador[nj];

b = new Baralho(nb);

}

public void embaralhaCartas()

{

b.embaralhaCartas();

}

public void joga() // este poderia ser o metodo que controla o jogo
{

}

}

O (s) meu (s) problema (s) é (são):

Tenho um array de jogadores e um array de cartas.Como faço para colocar o array de cartas dentro de cada

posição do array de jogador e pegar cartas do baralho e colocar dentro desse de cartas e depois como faço

para acessar o array de cartas de cada jogador para verificar a pontuação?

Valeuuuu!!!

1 Resposta

D

Na classe de jogador coloca uma variavel privada de cartas, um array como vc quer.
Cria um metodo nela que adicione o array de cartas distribuidas para aquele jogador jogador.
Guarda o jogador que já recebeu as cartas no seu array de jogador e pronto !

Criado 30 de junho de 2006
Ultima resposta 3 de jul. de 2006
Respostas 1
Participantes 2