Então galera, é o seguinte:
Estou desenvolvendo um jogo de truco em Java com Swing e estava pensando qual a melhor estrategia para rankear as cartas.
Não tenho muita idéia de como fazer isso…
Estava pensando em pegar as 12 cartas (3 de cada um dos 4 jogadores) e montar tipo uma lista, fila sei la, de acordo com o ranking, da mais forte pra mais fraca.
Dai de acordo com q os caras vao jogando, vai removendo dessa estrutura e ja compara pela posição qual a maior a carta (ou empate) e da os pontos pra dupla.
Como vcs recomendariam que eu fizesse isso ?
Lembrando que na minha classe Carta, eu tenho essas variaveis:
private int valorCarta;
private boolean eManilha;
private char naipe;
private boolean selecionada;
private String cartaNaipada;
private char valorAbsoluto;
Inicio o baralho de 0 a 39, ja organizando por valor e naipe, onde 0 é o 4 no truco (+fraco) e o 9 é o 3(mais forte) obviamente sem contar o vira, dai so uso modulo pra ir dividindo as cartas por valor, esquecendo o naipe, ja que ele so e usado para ver manilha.
Img para vcs entenderem o ranking por valor:
Uploaded with ImageShack.us
Ideias são bem vindas !
Obrigado !
Olá,
Eu pensaria em algo assim:
class Carta {
private Naipe naipe;
private ValorCarta valor;
}
enum Naipe {
DIAMONDS, SPADES, HEARTS, CLUBS
}
enum ValorCarta {
_4(1),
_5(2),
_6(3),
/*.....*/ ,
K(10),
A(11),
_2(12),
_3(13);
// O nome representa o valor de face da carta, o valor é o valor
// que ela tem no truco.
int valorTruco;
}
class CartaJogada {
private Carta carta;
private Jogador jogador;
private int valor;
}
A lógica seria essa:
-
Primeiro você cria o baralho, que é uma coleção de cartas fazendo todas as combinações entre naipes e valores.
-
Do baralho, tira 3 para cada jogador e tira o “vira”; o resto não é usado na rodada.
-
Inicialize uma coleção de CartaJogada, que serão as cartas efetivamente jogadas naquela rodada
-
A Cada carta jogada pelos jogadores, é criada uma instância de CartaJogada contendo: referência à carta, referência ao jogador e o valor. Verifique se a carta é manilha (seguinte ao Vira), se for atribua um valor especial dependendo do naipe; senão será o valor dela mesma.
-
No final da rodada você terá 4 CartaJogada, basta ver a que tem maior valor e automaticamente saberá quem jogou.
1 curtida
Vlw pela dica, vo tentar implementar desse jeito !
Viu galera, meu projeto ta sendo hospedado como open source no google, ta bem tosco, pq eu to aprendendo a programar em java ainda !
Se algm se interessar em fazer parte e quiser em ajudar, me da um toque por MP ou aki no post msm !
http://code.google.com/p/trucomaogrande/
Abraço