Olá,
estou fazendo um jogo de blackjack, tenho a classe Baralho, e a classe JogoDeBlackJack. Eu tentei criar um TipoBaralho, para poder usar outros baralhos, porém os métodos que eram da Classe Baralho, não estão disponíveis. O que eu poderia fazer?
public class Baralho {
List<Carta> cartas;
public void crieBaralho() {
cartas = new ArrayList<Carta>();
for (Naipe naipe : Naipe.values())
for (Numero numero : Numero.values())
cartas.add(new Carta(numero, naipe));
}
public void embaralhe() {
Collections.shuffle(cartas);
}
public Carta pegueUmaCartaDoBaralho() {
return cartas.remove(0);
}
}
public JogoDeBlackJack(TipoBaralho baralho, Jogador jogador, Dealer dealer) {
this.baralho = baralho;
this.jogador = jogador;
this.dealer = dealer;
}
Fala ai jooooao td blz??
Acredito que seja essa sua duvida, e proponho a seguinte solução:
A classe TipoBaralho herda a Classe Baralho (assim os metodos de Baralho ficam disponiveis para TipoBaralho)
A classe JogoDeBlackJack é composta das classes TipoBaralho, Jogador e Dealer --> Composição
Para exemplo coloquei a classe Main para ver como chamar os metodos das classes.
Classe Baralho
public class Baralho {
List<Carta> cartas;
public void crieBaralho() {
cartas = new ArrayList<Carta>();
for (Naipe naipe : Naipe.values()) {
for (Numero numero : Numero.values()) {
cartas.add(new Carta(numero, naipe));
}
}
}
public void embaralhe() {
Collections.shuffle(cartas);
}
public Carta pegueUmaCartaDoBaralho() {
return cartas.remove(0);
}
}
Classe TipoBaralho (não sei quais sao os atributo nem métodos mas simulei alguns para melhor entendimento).
public class TipoBaralho extends Baralho{
private String cor;
private String gramatura;
//Construtor
public TipoBaralho() {
}
//Gets e Sets
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public String getGramatura() {
return gramatura;
}
public void setGramatura(String gramatura) {
this.gramatura = gramatura;
}
}
Classe JogoDeBlackJack
public class JogoDeBlackJack {
private TipoBaralho tipobaralho ;
private Jogador jogador;
private Dealer dealer;
//Construtor
public JogoDeBlackJack() {
tipobaralho =new TipoBaralho ();
jogador=new Jogador();
dealer=new Dealer();
}
//Gets e Sets
public Dealer getDealer() {
return dealer;
}
public void setDealer(Dealer dealer) {
this.dealer = dealer;
}
public Jogador getJogador() {
return jogador;
}
public void setJogador(Jogador jogador) {
this.jogador = jogador;
}
public TipoBaralho getTipobaralho() {
return tipobaralho;
}
public void setTipobaralho(TipoBaralho tipobaralho) {
this.tipobaralho = tipobaralho;
}
}
Classe Jogador
public class Jogador {
private String nome;
//Gets e Sets
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Classe Main
public class Main {
public static void main(String[] args) {
JogoDeBlackJack black = new JogoDeBlackJack();
black.getTipobaralho().setCor("azul"); //aqui acesso os metodos da classe TipoBaralho
black.getTipobaralho().setGramatura("100mm"); //aqui acesso os metodos da classe TipoBaralho
black.getTipobaralho().crieBaralho(); //aqui acesso os metodos da classe Baralho herdados pela TipoBaralho
black.getTipobaralho().embaralhe(); //aqui acesso os metodos da classe Baralho herdados pela TipoBaralho
black.getJogador().setNome("Robervaldo"); //aqui acesso os metodos da classe Jogador
}
}
Abração :!:
Max