Problema na soma de variaveis

0 respostas
N
Boas pessoal, é o seguinte o programa consiste no jogo do 31 e começa por dar ao jogador 1 um numero aleatorio, o J1 se quiser continuar carrega no '+' ate ele chegar ao numero 31 ou ultrapassar o nº31,quando quiser acabar o J1 carrega no '=' dando a vez ao jogador 2 que faz a mesma coisa. Ganha quem no final das 3 rondas tiver mais pontos acumulados, falta dizer que, No final de cada round pode existir lugar à atribuição de um bónus: - Se algum jogador somar mais que 31 não há lugar à atribuição de bónus. -Os jogadores que somarem 31 recebem um bónus de 15 pontos. -Se nenhum jogador atingir os 31 pontos o jogador com o maior valor acumulado no round ganha um bónus de 5 pontos. Se existir um empate não há lugar à atribuição de bónus. e na ronda seguinte os pontos anteriores vao ser somados com os pontos desta nova ronda, sendo que se os pontos ultrapassarem o nº 31 n vao ser somados à ronda anterior e é ai onde reside o meu problema, ele vai retirar pontos quando os devia manter porque atingi um nº maior que 31. Desculpem la este testamento mas preciso mesmo de ajuda tem aqui o programa que fiz:
import java.util.Scanner;
class ex6 {
	public static void main(String[] args) {
		Scanner kbd=new Scanner(System.in);
		int sum=0;
		int sum2=0;
		int p1=0;
		int p2=0;
		int p3=0;
		int p4=0;
		double num3 = (Math.random() * 9 +0);
		double num1 = (Math.random() * 9 +0);
		//Utilizaçao do "for" para começar os Rounds cada vez que o J2 acaba de jogar
		for(int round=1;round<=3;round++){
			System.out.println("Round"+round);
		sum=sum+(int)num1;
		System.out.println("J1"+"("+(int)num1+")"+sum);//Gerar um numero aleatorio inicial para J1 e imprimi-lo
			while(sum<=40){//Modulo para inserir o '+' para continuar ou '=' para parar, para o J1
				char c=kbd.nextLine().charAt(0);
		double	num2=(Math.random() * 9 +0);
		if(c=='+')
			System.out.println("J1"+"("+(int)num2+")"+((int)num2+sum));
		sum+=(int)num2;
		if(c=='=')
			break;
			p1=sum;
		}
		sum=0;	
		sum2=sum2+(int)num3;
		System.out.println("J2"+"("+(int)num3+")"+sum2);//Gerar um numero aleatorio inicial para J2 e imprimi-lo
		while(sum2<=40){//Modulo para inserir o '+' para continuar ou '=' para parar, para o J2
		char f=kbd.nextLine().charAt(0);
		double	num4=(Math.random() * 9 +0);
		if(f=='+')
			System.out.println("J2"+"("+(int)num4+")"+((int)num4+sum2));
		sum2+=(int)num4;
		if(f=='=')
     	break;
		p2=sum2;	
		}
		sum2=0;
	if(p1<=31){
		p3=p3+p1;}
		if(p2<=31){
		p4=p4+p2;}
		if(p1>31){
			p3=p1;}
		if(p2>31){
			p4=p2;
		}
	
	int bonus=0;
		if(p1!=p2){	
			if(p1==31&&p2==31){
				bonus=15;
				System.out.println("Final Round"+(round)+":"+" J1"+"("+(p3+bonus)+")"+" J2"+"("+(p4+bonus)+")");}
			if(p1==p2&&p2==p1){
				bonus=0;
				System.out.println("Final Round"+(round)+":"+" J1"+"("+(p3)+")"+" J2"+"("+(p4)+")");}
			if(p1<p2&&p2>31&&p1==31){
				bonus=15;
			System.out.println("Bonus "+(bonus)+"p"+" J1");
			System.out.println("Final Round"+(round)+":"+" J1"+"("+((p3)+bonus)+")"+" J2"+"("+(p4)+")");}
			if(p2<p1&&p1>31&&p2==31){
				bonus=15;
			System.out.println("Bonus "+(bonus)+"p"+" J2");
			System.out.println("Final Round"+(round)+":"+" J1"+"("+(p3)+")"+" J2"+"("+((p4)+bonus)+")");}
			if(p1<p2&&p1<31&&p2>31){
				bonus=5;
			System.out.println("Bonus "+(bonus)+"p"+" J1");
			System.out.println("Final Round"+(round)+":"+" J1"+"("+((p3)+bonus)+")"+" J2"+"("+(p4)+")");}
			
		if(p1>p2&&p1<31&&p2<31){
			bonus=5;
			System.out.println("Bonus "+(bonus)+"p"+" J1");
			System.out.println("Final Round"+(round)+":"+" J1"+"("+((p3)+bonus)+")"+" J2"+"("+(p4)+")");
			}
			if(p1<p2&&p2<31&&p1<31){
				bonus=5;
				 System.out.println("Bonus "+(bonus)+"p"+" J2");
				 System.out.println("Final Round"+(round)+":"+" J1"+"("+(p3)+")"+" J2"+"("+((p4)+bonus)+")");
				 }
			if(p1>p2&&p1>31&&p2<31){
				bonus=5;
				 System.out.println("Bonus "+(bonus)+"p"+" J2");
				 System.out.println("Final Round"+(round)+":"+" J1"+"("+(p3=p3)+")"+" J2"+"("+((p4)+bonus)+")");
				 }
		if(p1>p2&&p1==31){
			bonus=15;
			 System.out.println("Bonus "+(bonus)+"p"+" J1");
			 System.out.println("Final Round"+(round)+":"+" J1"+"("+(p3+bonus)+")"+" J2"+"("+(p4)+")");
			}
			if(p2>p1&&p2==31){
				bonus=15;
				System.out.println("Bonus "+(bonus)+"p"+" J2");
		System.out.println("Final Round"+(round)+":"+" J1"+"("+(p3)+")"+" J2"+"("+((p4)+bonus)+")");}
			 if(p1>31&&p2>31){
				System.out.println("Final Round"+(round)+":"+" J1"+"("+(p3)+")"+" J2"+"("+(p4)+")");}
			
		}
		
		}
		if(p3>p4)
			System.out.println("Ganhou J1");
		else
			System.out.println("Ganhou J2");
		}
		
}
Obrigado. Boa Noite
Criado 13 de novembro de 2008
Respostas 0
Participantes 1