Ajuda com meu jogo em cmd

3 respostas
K
import java.util.Scanner;
import java.util.Random;

public class teste
{
	public static void main ( String args [] )
	{
		Scanner sc = new Scanner(System.in);
		Random ra = new Random();
		String combate;
		String personagem;
		int monstro;
		String jogador;
		
		System.out.println("Selecione seu personagem");
		System.out.println("1	guerreiro");
		System.out.println("2	arqueiro");
		System.out.println();
		System.out.println("Digite o numero do personagem que voce desejar selecionar:");
		personagem = sc.next();
		while ( personagem != "1" )
		{
			System.out.println("Opcao invalida.");
			System.out.println("Digite novamente:");
			personagem = sc.next();
		}
		if ( personagem == "1" )
		{
			System.out.println("Voce selecionou guerreiro");
			System.out.println("Ataque: 75");
			System.out.println("Vida:   50");
			System.out.println();
			System.out.println("Digite 'combate' para combater");
			combate = sc.next();
			while ( combate != "combate" )
			{
				System.out.println("Opcao invalida.");
				System.out.println("Digite novamente:");
				combate = sc.next();
			}
			if ( combate == "combate" )
			{
				monstro = ra.nextInt(3);
				switch ( monstro )
				{
					case 1:	System.out.println("orc");
							break;
					case 2: System.out.println("dragao");
							break;
					case 3: System.out.println("leao");
							break;
					default: System.out.println("nenhum monstro encontrado");
							break;
				}
			}
		}
	}
}

ta acontecendo o seguinte:
- enquanto o personagem for diferente de 1 ele vai exibir opcao invalida e pedir para digitar novamente. se o personagem for igual a 1 ele seleciona o guerreiro e parte pro proximo comando.
( ainda nao fiz o do arqueiro pq n deu certo o primeiro )

acontece que quando digita 1 ele da opcao invalida mesmo assim ^^
pelo fato de eu tar usando string ( pra ele n dar erro qndo digitar uma letra ) ta acontecendo isso.. e eu nao sei pq

substitui por int e deu certo.. mas eu quero fazer com string.

alguem sabe oq devo fazer?

valeuuu abraços

3 Respostas

vinians

Amigo, experimente trocar a linha de comparação por :

if ( personagem.equals("1") )

Deve ser isso!
Flws!

ViniGodoy
  1. Nunca use um método diferente do nextLine() com a classe Scanner, quando for ler do teclado;
  2. Strings se comparam usando o método equals. Isso vale para todos os objetos. Troque:
personagem == "1"

Por

"1".equals(personagem)
T

amigo se vc for comprar string use .equals

ex string1.equals(string2) semelhante a ==,

mas se vc quiser

vc converte string pra int com Integer.parseInt(String1);

dica, procure a respeito variavel de referencia em java

abraços

Criado 9 de maio de 2011
Ultima resposta 9 de mai. de 2011
Respostas 3
Participantes 4