AJUDA (Ciclo)!

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?!? :grin: