Desculpem lá… mas axo k me enganei a por o post… e colokei no nivel avançado… penso k isto seja simples… mas n tou a conseguir resolver tou a desesperar… quero fazer um jogo (trabalho de faculdade) mas n consigo colocar um ciclo reparem bem…
import java.awt.Frame;
import java.io.*;
public class olájava extends Frame{
public static void main(String[] args)
throws IOException {
InputStreamReader leitor = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(leitor);
System.out.print("Quantas moedas o jogador 1 quer retirar?");
String texto = input.readLine();
int r = Integer.parseInt(texto);
int m = 22;
long n = m - r;
if (r<=3)
System.out.println("Tem " + n + " moedas");
else System.out.println ("Não pode retirar mais que 3 moedas.");
if (n<=0)
System.out.println("Perdeu o jogo. Tirou a ultima moeda");
System.out.print("Quantas moedas o jogador 2 quer retirar?");
String text = input.readLine();
int s = Integer.parseInt(text);
long l = n - s;
if (s<=3)
System.out.println("Tem " + l + " moedas");
else System.out.println ("Não pode retirar mais que 3 moedas");
if (l<=0)
System.out.println("Perdeu o jogo. Tirou a ultima moeda");
}
}
o que é k eu faço para se a pessoa n retirar as moedas certas voltar a jogar? e como é k faço outro ciclo de modo a acontecer sempre isso até chegar a ter 0 moedas…
Obrigado por qualquer ajuda…
Coloque seu “ciclo” dentro de while(true), quando eles estiverem no estado de parar dê um break.
obrigado… o problema é k eu não percebo nada de Java é a primeira vez que tou a fazer alguma coisa… e já cheguei até aki… mas agora n sei mais… Nem sei como usar o while tentei mas n sei mm k fazer…
Olá, a sintaxe é simples, é o while(“enquanto isto for verdadeiro faça”){ /coisas a fazer/…}, mas no seu caso é simples:
while(true){
while(true){
coisas do jogador 1, quando ocorrer a condição para o jogador dois jogar vc dá um “break”.
}
while(true){
coisas do jogador 2, quando ocorrer a condição para o jogador dois jogar vc dá um “break”.
}
}
Para parar o jogo, caso alguém já tenha ganho, dá um “break” no while mais externo.
já tou a perceber como é k isso funciona… mas axo k vou ter de trocar todo o meu programa… não é!!!
import java.awt.Frame;
import java.io.*;
public class olájava extends Frame{
public static void main(String[] args)
throws IOException {
InputStreamReader leitor = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(leitor);
while(true){
while(true){
System.out.print(“Quantas moedas o jogador 1 quer retirar?”);
String texto = input.readLine();
int r = Integer.parseInt(texto);
int m = 22;
long n = m - r;
if (r<=3)
System.out.println("Tem " + n + " moedas");
else
System.out.println ("Não pode retirar mais que 3 moedas.");
if (n<=0)
System.out.println("Perdeu o jogo. Tirou a ultima moeda");break;
}
while(true){
System.out.print("Quantas moedas o jogador 2 quer retirar?");
String text = input.readLine();
int s = Integer.parseInt(text);
long l = n - s;
if (s<=3)
System.out.println("Tem " + l + " moedas");
else
System.out.println ("Não pode retirar mais que 3 moedas");
if (l<=0)
System.out.println("Perdeu o jogo. Tirou a ultima moeda");break;
}}
}
}
Fiz assim e não funciona… pk não tem lógica… tenho de trocar o programa todo???
Obrigado
Acho que não… só que vc inicializou algumas variáveis dentro do while… vê se eu entendi o jogo: se tem 22 moedas, o jogador que tirar a ultima moeda perde, cada jogador só pode tirar menos de 3 moedas por vez. é isso? perguntas, se pode tirar um numero negativo de moedas?
se for faça o seguinte:
//inicializa as variáveis “globais”, que servem tanto para o primeiro, quando para o segundo jgador, tipo a de moedas.
começe o while:
// de a chance para o primerio jogador, com a condição de parada bem definida, isto é, ele só para quando acabar as moedas e ele perder ou ele tira uma moeda e se não perder é a vez do segundo jogador?
// de a chance para o segundo jogador.
olá… obrigado pela paciência… eu sou de portugal … por isso as vezes fica meio complicado de perceber algumas palavras… mas o jogo é assim temos 22 moedas e temos dois jogadores cada jogador pode retirar 3 ou menos moedas e é um jogador de cada vez… o jogador k retirar a ultima perde… por isso não é possivel retirar numeros negativos… pois isso seria a mm coisa k repor moedas e isso n vale…
dá para perceber?!? 