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");
}
}
Problema na soma de variaveis
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:
Obrigado. Boa Noite
Criado 13 de novembro de 2008
Respostas 0
Participantes 1