Como faço pra substituir os _ _ pelas letras digitadas

2 respostas
Bruno_Gabriel_da_Sil
To com muita dificuldade na substituição dos _ _ pelas letras digitadas pelo jogador . Se puderem me dar uma ajuda ai ficarei grato.. Obrigado
import java.util.Scanner;


public class fra {

	
	public static void main(String[] args)
	{
		int opcao;
		
		
		Scanner LeTeclado = new Scanner(System.in);
		System.out.println("Digite 1 para jogar contra outra pesssoa");
		System.out.println("Digite 2 para jogar contra o computador");
		System.out.println("Digite 3 para sair");
		opcao = LeTeclado.nextInt();
		
		switch(opcao)
		{
			case 1 ://jogadorxjogador ();
				break;
				
			case 2 :jogadorxcomputador();
				break;
				
			case 3 : 
			break;		
		}
		
		
	
	}

	

	private static void jogadorxcomputador() 
	{

		String []palavras;
		int  adivinhe;
		//String 
		int cont;
		
		palavras = new String[20];
		Scanner LeTeclado = new Scanner(System.in);
		System.out.println("Digite um numero de 0 até 19");
		adivinhe = LeTeclado.nextInt();
		

		palavras[0] = "carro";
		palavras[1]= "aviao";
		palavras[2]= "computador";
		palavras[3]= "girafa";
		palavras[4]= "bicicleta";
		palavras[5]= "cabra";
		palavras[6]= "paralelepipido";
		palavras[7]= "gato";
		palavras[8]= "garrafa";
		palavras[9]= "cachorro";
		palavras[10]= "arroz";
		palavras[11]= "medo";
		palavras[12]= "inteligente";
		palavras[13]= "avestruz";
		palavras[14]= "bode";
		palavras[15]= "brasil";
		palavras[16]= "faculdade";
		palavras[17]= "melancia";
		palavras[18]= "novidade";
		palavras[19]= "asfalto";
	
		for(cont = 0; cont < palavras[adivinhe].length(); cont++)
		{
			 System.out.print("_ ");
			//adivinhe =  palavras + "_ ";
			//System.out.print( adivinhe );
			
		}
		System.out.println("Numeros de caracteres desta palvra eh = "+ palavras[adivinhe].length());
		fra.Acao();
		
	}
	private static void Acao()
	{
		String palavra;
		String opcao;
		boolean  aceito;
		boolean  continuar;
		
		
		
		continuar = true;
		Scanner LeTeclado = new Scanner(System.in);
		
			aceito = false;
			while (aceito == false)
			{
				System.out.println("Agora tente adivinhar qual eh a palavra!");
				System.out.println("So seram aceitas palavras com caracteres de a até z minusculos.!");
				palavra = LeTeclado.nextLine();
				if (palavra.length() == 0 || palavra == null)
				{
					//palavra = escolher_palavra();
					aceito = true;
				}
				else
				{
					aceito = true;
					for (int x = 0; x < palavra.length(); x++)
					{
						if ((char)palavra.charAt(x) < 97 || (char)palavra.charAt(x) > 122)
						{
						System.out.println("Voce perdera uma chance se digitar errado novamente!");
							aceito = false;
							break;
						}
					}
				}
			}			
	}
}

2 Respostas

alucardeck

bom… analizei seu codigo…

vc esta fazendo ele meio errado…

nao vai ter como vc digitar no console em “cima” dos _ _ _ jah escritos…
o console soh permite vc escrever linha apos linha… sem voltar… ele não é um editor de texto…

estou com um tempo livre no trabalho agora… se vc tiver interesse eu posso tentar fazer o programa pra vc =)
ai vc estuda o jeito q eu faria… hehe

alucardeck

bom… como nao tinha oq fazer mesmo…

fiz um jogo da Forca bem rapido mesmo hehe
poderia adicionar mta coisa e melhorar ele…
mas ai fica a cargo de quem vai estudar o codigo =)

Main Class Forca

import java.util.Scanner;

public class Forca {
	
	char[] palavra;
	char[] palavra_usuario;
	Scanner teclado;
	
	public static void main(String[] args) {
		new Forca();
	}
	
	private Forca(){	
		palavra = Palavras.getPalavra();
		palavra_usuario = new char[palavra.length];
		for(int cont = 0; cont < palavra.length; cont++){
			System.out.print("_ ");
			palavra_usuario[cont] = '_';
		}
		System.out.println("Numeros de caracteres desta palvra eh = "+ palavra.length);
		Acao();					
	}

	private void Acao(){
		String digitado;
		boolean fim = false;
		boolean acertou;
		int tentativas = 10;
		teclado = new Scanner(System.in);
			
		System.out.println("Agora digite uma LETRA (caso digite mais de uma letra, será considerado uma tentativa de acertar a palavra !");
		System.out.println("So seram aceitas palavras com caracteres de a até z minusculos.!");
		
		while (!fim){
			acertou = false;
			digitado = teclado.next();
			if (digitado.length() == 0 || palavra == null){
				System.out.println("Digite ALGO!");
			}else{
				if(digitado.length()==1){
					for(int i=0; i<palavra.length;i++){
						if(palavra[i]==digitado.charAt(0)){
							palavra_usuario[i] = digitado.charAt(0);
							acertou = true;
						}
					}
					if(acertou){
						System.out.println("Voce acertou a letra!");
					}else{
						System.out.println("Esta letra não existe na palavra!");
						tentativas--;
					}
					System.out.println(new String(palavra_usuario)+"  +"+tentativas+" tentativas!");
					
				}else{
					if(new String(palavra).equals(digitado)){
						System.out.println("Acertou! Ganhou o jogo!");
						fim = true;
					}else{
						System.out.println("Errou a palavra!");
						tentativas--;
						System.out.println(new String(palavra_usuario)+"  +"+tentativas+" tentativas!");
					}
				}
				
				if(tentativas == 0){
					System.out.println("Perdeu!");
					fim = true;
					
				}
			}
						
			
		}			
	}
}
public abstract class Palavras {
	static String[] palavra = new String[]{
			"carro",
			"aviao",
			"passarinho",
			"pipoca",
			"mandioca",
			"batata"
	};
		
	public static char[] getPalavra(){
		int id = (int)(Math.floor(Math.random()*palavra.length));
		String pl = palavra[id];
		char[] ret = new char[pl.length()];
		for(int i=0; i< pl.length(); i++){
			ret[i] = pl.charAt(i);
		}
		return ret;
	}
	
}
Criado 9 de junho de 2008
Ultima resposta 9 de jun. de 2008
Respostas 2
Participantes 2