View Full Version : Jogo mau-mau em java


Zepiroca
05-06-2007, 22:20
Boas pessoal.
É assim eu precisava que alguem me podesse ajudar a fazer o jogo do mau-mau em java.
eu tou kom dificuldade em criar um baralho.
Eu tenho uma classe baralho que tem como atributos carta da classe Carta.
Será que alguem me pode explicar como fazer isso.

Jeust
06-06-2007, 03:29
mete as classes e o código se centram as tuas dúvidas, só assim é k nós podemos dar uma olhadela :p

Zepiroca
06-06-2007, 16:24
entao aki vai

eu tenho uma classe Carta
private String naipe
private String nome
private int valor

public Carta(string naipe,String nome,int valor)

getNaipe
setNaipe
getNome
setNome
getValor
setValor

e dp tenho uma classe baralho
private Carta cart

e agora eu criar saber como é k faço para criar um baralho com 52 cartas?

MadOnion
06-06-2007, 20:48
Talvez um conjunto?
Interface Map, classe HashMap
Talvez uma lista?
Interface List, classe LinkedList
Um vector implementado com listas?
Interface List, classe ArrayList

Há n abordagens diferentes para resolver o problema, basta adicionar cartas ao conjunto/lista/vector.
Para baralhar podes usar o metodo shuffle da Collections... Collections.shuffle(lista);

Podes usar um Random para gerar cartas aleatórias, como disse depende da abordagem do problema, eu não conheço o jogo.
etc etc.

Zepiroca
06-06-2007, 22:56
entao e kal das maneiras sugeres
será k me podes dar um exemplo atraves de codigo

souto
06-06-2007, 23:05
Talvez um conjunto?
Interface Map, classe HashMap
Talvez uma lista?
Interface List, classe LinkedList
Um vector implementado com listas?
Interface List, classe ArrayList

Há n abordagens diferentes para resolver o problema, basta adicionar cartas ao conjunto/lista/vector.
Para baralhar podes usar o metodo shuffle da Collections... Collections.shuffle(lista);

Podes usar um Random para gerar cartas aleatórias, como disse depende da abordagem do problema, eu não conheço o jogo.
etc etc.

Exactamente, mas não podemos ajudar mais sem saber especificamente o que é.

Para criares um baralho com 52 cartas, instancias uma colecção (pensando uma ArrayList..)
List batatas = new ArrayList<Carta>(52);, fazes um ciclo e por cada iteração crias uma carta nova usando o new; seguidamente adicionas à colecção. O cuidado está em criar 52/4 cartas por naipe. Mas tens que pensar um pouco nisso :)

Cumprimentos.

Zepiroca
06-06-2007, 23:24
Exactamente o k eu preciso é fazer um programa que seja um pack de jogos para a cadeira de POO.
Esse pack tem de ter o jogo do uno (+ conhecido por mau-mau) e o jogo do 21.
So que eu nao sei bem como começar. Por isso é que eu pedi ajuda.
Se alguem me poder ajudar eu agradeço mto.

jtcgomes
08-06-2007, 18:19
Eu ando a fazer um jogo em JavaScript, corre em html, as funçoes podem ser identicas, se quiseres posso disponiblizar...

var vnp, vfp,baralho=new Array();
vnp=new Array ("Paus", "ouros", "copas", "espadas");
vfg=new Array ("Duque","Terno","Quadra","Quina",
"Sena","Sete","Oito","Nove","Dez",
"Valete","Dama","Rei","As");

Dizes k a tua dificuldade é em criar um baralho, ve se isto ajuda:

function CriarBaralho(){
var np, fg, i=0;
for (np=1; np<=4; np++)
for (fg=1; fg<=13; fg++)
baralho[i++]=100*np+fg;
}


adiento já aki a função baralhar

function BaralharCartas(n){
var i, p1, p2, aux;
for (i=0; i<n; i++){
p1=Math.floor(52*Math.random());
p2=Math.floor(52*Math.random());
aux=baralho[p1];
baralho[p1]=baralho[p2];
baralho[p2]=aux;
}
}


Tu tas a trablhar em java, eu em javaScript, eu sei, mas pode ser k dê alguma ajuda.

Zepiroca
09-06-2007, 23:33
É assim eu ja crei uma classe carta do tipo

public class Carta {

public final static int copas=0,espadas=1,ouros=2,paus=3;
public final static int valete=11, dama=12, rei=13, as=14, joker=15;
private int naipe;
private int tipo;

public Carta(int naipe,int tipo){
this.naipe=naipe;
this.tipo=tipo;
}

public int getNaipe(){
return naipe;
}
public int getTipo(){
return tipo;
}

public String toStringNaipe(){
switch(naipe){
case 0: return "Copas";
case 1: return "Espadas";
case 2: return "Ouros";
case 3: return "Paus";
default : return "Nao existe";
}
}

public String toStringTipo(){
switch(tipo){
case 2: return "2";
case 3: return "3";
case 4: return "4";
case 5: return "5";
case 6: return "6";
case 7: return "7";
case 8: return "8";
case 9: return "9";
case 10: return "10";
case 11: return "Valete";
case 12: return "Dama";
case 13: return "Rei";
case 14: return "Ás";
case 15: return "Joker";
default: return "Não existe";
}
}

public String toString(){
return toStringTipo()+ " " + toStringNaipe();
}

e depois criei um classe baralho do tipo

private Carta[] baralho21;

public Baralho21(){
baralho21 = new Carta[35];
int contCartas=0;
for(int naipe=0;naipe<=3;naipe++){
for(int tipo=6;tipo<=14;tipo++){
baralho21[contCartas]=new Carta(naipe,tipo);
contCartas++;
}
}
}

public Carta[] getBaralho21(){
return baralho21;
}
Mas agora tou com um problema, n consigo fazer um metodo para baralhar o baralho.
Sera que alguem me pode ajudar

MadOnion
10-06-2007, 00:20
Para baralhar podes usar o metodo shuffle da Collections... Collections.shuffle(lista);


Como já havia dito.
Dá uma olhada na documentação do java(API).