Galera, estou tentando criar um baralho em Java, mas ao tentar setar as cartas inicialmente, estou recebendo o famoso NullPointerException !
Segue as classes:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Classes;
/**
*
* @author Leonardo
*/
public class Cartas {
private int valorCarta;
private char naipe;
private boolean eManilha;
private boolean selecionada;
public Cartas() {
setCarta(-1,'x');
setManilha(false);
}
public void setCarta(int v, char n){
this.valorCarta = v;
this.naipe = n;
}
public void getCarta(int v, char n){
System.out.print(v+""+n);
}
public boolean isManilha() {
return eManilha;
}
public void setManilha(boolean eManilha) {
this.eManilha = eManilha;
}
public char getNaipe() {
return naipe;
}
public void setNaipe(char naipe) {
this.naipe = naipe;
}
public boolean isSelecionada() {
return selecionada;
}
public void setSelecionada(boolean selecionada) {
this.selecionada = selecionada;
}
public int getValorCarta() {
return valorCarta;
}
public void setValorCarta(int valorCarta) {
this.valorCarta = valorCarta;
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Classes;
/**
*
* @author Leonardo
*/
public class Baralho {
private Cartas[][] baralho;
private Cartas vira;
public Baralho() {
baralho = new Cartas[4][10]; //inicia o baralho com 4 naipes e 10 valores
// 0 - paus, 1 - copas, 2 - espada, 3 - ouros(pica)
for (int naipe = 0; naipe < 4; naipe++) {
for (int valores = 0; valores < 10; valores++) {
char naip = setNaipe(naipe);
baralho[naipe][valores].setCarta(naipe, naip);
}
}
}
private char setNaipe(int i) {
char n = ' ';
switch (i) {
case 0:
n = 'P';
break;
case 1:
n = 'C';
break;
case 2:
n = 'E';
break;
case 3:
n = 'O';
break;
}
return n;
}
public void geraVira() {
char naipe = setNaipe((int) Math.random() * 4);
int carta = (int) Math.random() * 10;
vira.setCarta(carta, naipe);
vira.setManilha(false);
vira.setSelecionada(true);
}
}
No caso, ele esta dando erro nessa linha : [color=green]baralho[naipe][valores].setCarta(naipe, naip); [/color]
Erro:
[color=red]Exception in thread "main" java.lang.NullPointerException
at Classes.Baralho.
at jogocarta.Main.main(Main.java:21)
Java Result: 1[/color]
Lembrando que na main apenas chamei Baralho b = new Baralho();
Mto obrigado !
!