Onde está o erro?

0 respostas
J
Boa tarde a todos! Estou fazendo o exercicio 18 do cap 7 do Java Como Programar 6ªEd. Mas não consigo mostrar as contagens dos jogos para vitória e perda com uma rolagem dos dados. Não consigo ver onde estar o erro. Fiz meu codigo assim:
//Aplicativo que utiliza o jogo de Craps da figura 6.9

import java.util.Random;

public class Exerc7_18_JCP {
	
	//variável para lançamento dos dados
	private Random randomNumbers = new Random();
	
	//enum para mostra o status do jogo
	private enum Status {CONTINUE, WON, LOST};
	
	//constante que representam lançamentos comuns dos dados
	private final static int SNAKE_EYES = 2;
	private final static int TRAY = 3;
	private final static int SEVEN = 7;
	private final static int YO_ELEVEN = 11;
	private final static int BOX_CARS = 12;
	
	int cont[] = new int[3];
	int frequenci[] = new int[5];
	int frequenci1[] = new int[5];
	
	
	//joga uma partida de Craps
	public void play(){
		
		cont[1] = 0; cont[2] = 0; cont[0] = 0;
		for(int i=0; i < frequenci.length; i++)
			frequenci[i] = 0;
		for(int j=0; j < frequenci1.length; j++)
			frequenci1[j] = 0;	
		
		int myPoint = 0; //contagem dos pontos
		Status gameStatus; //pode conter CONTINUE, LOST ou WON
		int sumOfDice = rollDice(); //primeira rolagem dos dados
		
		switch (sumOfDice){
			case SEVEN:
			case YO_ELEVEN:
				gameStatus = Status.WON; break;
			case SNAKE_EYES:
			case TRAY:
			case BOX_CARS:
				gameStatus = Status.LOST; break;
			default:
				gameStatus = Status.CONTINUE;
				myPoint = sumOfDice;
				System.out.println("minha pontuação é: "+myPoint);
				break; //não é necessário no último case					
		}
		
		contagem(gameStatus);
		contagem2();
		
		//enquanto o jogo continuar, ou seja, não estiver completo
		while (gameStatus == Status.CONTINUE){
			
			sumOfDice = rollDice(); //lança os dados novamente
			
			if(sumOfDice == myPoint)
				gameStatus = Status.WON;
			else if(sumOfDice == SEVEN)
				gameStatus = Status.LOST;
				
			contagem(gameStatus);
			contagem2();	
		}
		//exibe uma mensagem se perdeu ou ganhou
		if(gameStatus == Status.WON)
			System.out.println("Players wins");
		else 
			System.out.println("Players loses");
		
		contagemDosJogos();
			
			
			
	}//fim do método play
	
	public int rollDice(){
						
		int die1 = 1 + randomNumbers.nextInt(6);
		int die2 = 1 + randomNumbers.nextInt(6);
		
		int sum = die1 + die2;
		
		System.out.printf("Player rolled: %d + %d = %d\n",die1,die2,sum);
		
		return sum;
		
	}//fim do método roolDice
	
	
	public void contagem(Status status){
					
		if(status == Status.CONTINUE){
			++cont[0]; 
		}
		else if(status == Status.LOST){
			++cont[1]; 
		}
		else if(status == Status.WON)
		{
			++cont[2]; 
		}
	}//fim do metodo contagem
	
	public void contagem2(){
		
		int total1 = 0, total2 = 0;
		
		total1 =  cont[2];
		total2 =  cont[1];	
			
		switch(total1){
			case 1:
				++frequenci[0]; break;
			case 2:
				++frequenci[1]; break;
			case 3:
				++frequenci[2]; break;
			case 4:
				++frequenci[3]; break;
			case 5:
				++frequenci[4]; break;				
		}	
		switch(total2){
			case 1:
				++frequenci1[0]; break;
			case 2:
				++frequenci1[1]; break;
			case 3:
				++frequenci1[2]; break;
			case 4:
				++frequenci1[3]; break;
			case 5:
				++frequenci1[4]; break;				
		}	
	}
	int todosJogos[] = new int[5];
	int todosJogos1[] = new int[5];
	public void contagemDosJogos(){
		
		for(int i=0; i<todosJogos.length; i++)
			todosJogos[i] += frequenci[i];
		for(int i=0; i<todosJogos1.length; i++)
			todosJogos1[i] += frequenci1[i];
			
	}
	
}//fim da classe Craps
public class Testa_Exerc7_18_JCP {
	
	public static void main(String args[]){
		
		Exerc7_18_JCP game = new Exerc7_18_JCP();
		
		int jogo[] = new int[5];
		
		for(int i = 0; i < jogo.length; i++){
			
			System.out.printf("\nJOGO %d:\n",i+1);
			game.play();
		}
	    System.out.printf("O número de jogos ganhos com uma rolagem é: %d\n",game.todosJogos[0]);
	    System.out.printf("O número de jogos perdidos com uma rolagem é: %d\n",game.todosJogos1[0]);    	
					
	}
}

Peço desculpas se o codigo estiver um pouco confuso de entender.

Criado 3 de junho de 2007
Respostas 0
Participantes 1