AJUDA (Ciclo)!

6 respostas
P

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 <a href="http://java.io">java.io</a>.*;

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&lt;=3)
	 
	System.out.println("Tem " + n + " moedas"); 

else System.out.println ("Não pode retirar mais que 3 moedas.");


if (n&lt;=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&lt;=3) 
	System.out.println("Tem " + l + " moedas"); 
else System.out.println ("Não pode retirar mais que 3 moedas"); 
if (l&lt;=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…

6 Respostas

B

Coloque seu “ciclo” dentro de while(true), quando eles estiverem no estado de parar dê um break.

P

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…

B
Olá, a sintaxe é simples, é o while(“enquanto isto for verdadeiro faça”){ /<em>coisas a fazer</em>/…}, mas no seu caso é simples:

while(true){

while(true){

coisas do jogador 1, quando ocorrer a condição para o jogador dois jogar vc  um “break”.

}

while(true){

coisas do jogador 2, quando ocorrer a condição para o jogador dois jogar vc  um “break”.

}

}

Para parar o jogo, caso alguém  tenha ganho,  um “break” no while mais externo.
P

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 <a href="http://java.io">java.io</a>.*;

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&lt;=3)
	System.out.println("Tem " + n + " moedas"); 
else 
	System.out.println ("Não pode retirar mais que 3 moedas.");
if (n&lt;=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&lt;=3) 
	System.out.println("Tem " + l + " moedas"); 
else 
	System.out.println ("Não pode retirar mais que 3 moedas"); 
if (l&lt;=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

B

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.

P

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:

Criado 18 de abril de 2005
Ultima resposta 18 de abr. de 2005
Respostas 6
Participantes 2