Erro

E ai galera,

to com o seguinte problema:

[b]Exception in thread “main” java.lang.Error: Unresolved compilation problems:
Syntax error on token “;”, { expected after this token
Syntax error, insert “}” to complete ClassBody

at Logica.<init>(Logica.java:12)
at Main.main(Main.java:6)[/b]

Funciona assim: tenho uma classe Main que instancia a classe Logica, na linha 12 da classe lógica eu declaro objetos da classe jogador:

Jogador a = new Jogador(jogador1, 0, dadoBranco, dadoVermelho); Jogador b = new Jogador(jogador2, 0, dadoBranco, dadoVermelho);

Daí aparece aquela msg de erro,
pq será?

Posta todo o código de main e de Jogador pra gente analisar.

public class Main { public static void main(String[] args) { Logica l = new Logica(); } }

public class Jogador {
	//atributos da classe   
	private String nome;   
	private int qntPontos;   
	private Dado dado;   
	private Dado dado2;   
	  
	//Construtor, inicializar os atributos   
	public Jogador(String nome, int qntPontos, Dado dado, Dado dado2){   
	this.nome = nome;   
	this.qntPontos = 0;   
	this.dado = dado;   
	this.dado2 = dado2;   
	}   

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}


	public int getQntPontos() {
		return qntPontos;
	}


	public void setQntPontos(int qntPontos) {
		this.qntPontos = qntPontos;
	}


	public Dado getDado() {
		return dado;
	}


	public void setDado(Dado dado) {
		this.dado = dado;
	}


	public Dado getDado2() {
		return dado2;
	}


	public void setDado2(Dado dado2) {
		this.dado2 = dado2;
	}
	
	public int jogaDadoBranco(){
		int n=dado.jogaDado();
		System.out.println("Dado " + dado.getCor() +": "+n); 
		return n;
	}

	public int jogaDadoVermelho(){
		int n2=dado.jogaDado();

		if (n2==6){
			n2= 6*2;
			System.out.println("Sortudooo!!! Você tirou 6, este ponto se multiplicará por 2!");
		};
		System.out.println("Dado " + dado2.getCor() + ":" +n2);
		return n2;
	}

}

Cadê a classe Lógica?
Pelo visto o erro está ocorrendo dentro de seu construtor.

[]
Éberson


public class Logica{
	
	Teclado t = new Teclado();
	String jogador1 = t.leString("Digite o nome do jogador 1: ");    
    String jogador2 = t.leString("Digite o nome do jogador 2: ");
    Dado dadoBranco = new Dado(6,"branco");   
    Dado dadoVermelho = new Dado(6,"vermelho");   
  
    //Criando os jogadores   
     Jogador a = new Jogador(jogador1, 0, dadoBranco, dadoVermelho);   
     Jogador b = new Jogador(jogador2, 0, dadoBranco, dadoVermelho);   
  
    for (int i = 0; i < 3; i++) {
    	int totalPontos1 = 0;
    	int joga1 = t.leInt(jogador1 + " Digite 1 para jogar ou 0 para passar a vez: ");
	    if (joga1==1){
	    	a.setQntPontos(a.getQntPontos()+ a.jogaDadoBranco());
	    	a.setQntPontos(a.getQntPontos() + a.jogaDadoVermelho());
	    } 
	    int joga2 = t.leInt (jogador2 + " Digite 1 para jogar ou 0 para passar a vez: ");
	    if (joga2==1){
	    	b.setQntPontos(b.getQntPontos() + b.jogaDadoBranco());	
	    	b.setQntPontos(b.getQntPontos() + b.jogaDadoVermelho());
	    }
	}		
    System.out.println("Total de pontos do jogador "+a.getNome()+ ": "  + a.getQntPontos());
    System.out.println("Total de pontos do jogador "+b.getNome()+ ": " + b.getQntPontos());       
 
    if (a.getQntPontos()> 21 && b.getQntPontos()>21){
    	System.out.println("O jogo empatou!");
    }
    if (a.getQntPontos()== b.getQntPontos()){
    	System.out.println("O jogo empatou");
    }
    if (a.getQntPontos()< 22 && b.getQntPontos()< a.getQntPontos()){
    	System.out.println("Você ganhou " + a.getNome());
    }
    if (b.getQntPontos()< 22 && a.getQntPontos()< b.getQntPontos()){
    	System.out.println("Você ganhou " + b.getNome());
    }
}

Não estou conseguindo enxergar o problema que você recebeu neste código.
A JVM está reclamando porque você deve ter deixado algum erro de compilação sem ser resolvido. Então sugiro que faça o seguinte:

  • Não sei qual IDE você está usando (eu uso eclipse) nele tem uma guia chamada “Problems” -> Window-Show View-Problems (não sei o caminho para chegar até ela no Netbeans)… nela você vai ver os erros de compilação do seu projeto e poderá ir ao ponto onde eles ocorrem e fazer a devida correção;
  • Caso seu projeto não tenha erros, o ideal é recompilar tudo de novo (se necessário faça um clean nele);

Tenta ae… qualquer coisa coloca ai que a gente da uma olhada.

[]
Éberson

Cara, eu to usando o Eclipse,

blz eu segui tuas instruções ae,
e me diz o seguinte SYNTAX ERROR ON TOKEN “;”"{ EXPECTED AFTER THIS TOKEN

isto bem onde eu instancio o jogador b sabe…
antes do for ali…

Como faço um Clean nele??

Repassei o código várias vezes, e sei lá… não encontro o que pode estar errado,

Abraços cara!

Resolvi aqui cara,
eu que tava viajando…

hehe

o main tava chamando a classe lógica,

a já minha classe logica não tinha nenhum método.

Dã… coloquei o meu código da logica dentro de um iniciaJogo()
e instanciei ele no main

Agora simmm

Valeuu a tds, abrassssssss :smiley: