Galera, estou tentando criar um baralho em Java, mas ao tentar setar as cartas inicialmente, estou recebendo o famoso NullPointerException !
Segue as classes:
[code]/*
- 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;
}
}
[/code]
Baralho (a que da erro):
[code]/*
- 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);
}
}
[/code]
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.(Baralho.java:22)
at jogocarta.Main.main(Main.java:21)
Java Result: 1[/color]
Lembrando que na main apenas chamei Baralho b = new Baralho();
Mto obrigado !