Ajuda ai pessoal

11 respostas
java
R

Boas pessoal preciso de ajuda para fazer o “jogo da Forca”, parecendo muito basico para mim que estou a comecar agora é algo ja bastante complexo, a questao é que tem algumas regras:
Todo o jogo tem de ser escrito em metodos
o jogo so aceita um caracter de uma vez
Alguem me consegue ajudar estou em fim de semestre e esta foda acabar este trabalho e ter a cadeira feita:

11 Respostas

J

Ajudar em que exatamente? Qual sua dúvida?

R

Basicamente tenho de fazer o programa com estes metodos com a funçao pedida e nao estou a consegyuir passar do metodo “eLetra” comecei a tentar fazer o metodo seguinte mas nao consigo perceber como fazer,

static String escolhePalavraChave( )

pede ao utilizador a palavra chave, testa se está tudo bem, e retorna a

palavra escolhida. A palavra retornada deve estar toda em maiúsculas.

static boolean ePalavraValida( String str )

testa se a palavra pode ser usada. Tem de ter 5 caracteres, no mínimo, e

serem todos letras.

static boolean eLetra( char ch )

testa se o caracter ch é uma letra.

static char pedeLetraNova( char usadas[], int nUsadas )

pede uma letra nova e retorna a letra. Deve fazer os testes se é uma letra

e se  foi usada.  aceita a letra após passar os testes.

static boolean jaUsada( char letra, char []usadas, int nUsadas )

verifica se uma letra  foi usada em tentativas anteriores.

static void atualizarAdivinha(String chave, char[] atual, char letra)

Atualiza a palavra atual. Esta palavra representa a palavra parcialmente

adivinhada. Terá de substituir todos os  na palavra pela letra na posição

correta.

static boolean acertou(String chave, char[] atual)

testa se a palavra atual é igual à chave introduzida.

static String getBoneco(int nErros)

devolve o boneco associado ao número de erros.
J

Mas não tem nada implementado. E como assim está em fim de semestre?

R

Poste todos os códigos que você já fez e qual a sua dúvida em relação a ele para podermos ajudar.

R

Basicamente fiz isto tenho de fazer um metodo que verifique se a letra posta pelo utilizador ja foi posta pelo utilizador numa tentativa anterior, um metodo para atualizar a palavra, um metodo que mostre o boneco da forca e um que verifique se a palavra descoberta é igual

import java.util.Scanner;

public class enforcado1 {

static Scanner teclado = new Scanner(System.in);

static String escolhePalavraChave(String palavra) {

	System.out.println("Bem vindo ao Jogo O Enforcado");
	do {	
		System.out.print("Por favor digite uma palavra com 5 ou mais letras: ");
		palavra = teclado.next();
		palavra = palavra.toUpperCase();

	}while (!ePalavraValida(palavra));
	System.out.println(palavra);
	return palavra;
}
static boolean ePalavraValida(String palavra) {
if (palavra.length() <5 )
		return false;
	for (int i=0; i< palavra.length(); i++) {
		if (palavra.charAt(i)<'A'||palavra.charAt(i)>'Z' ) 
			return false;
	}
return true;
}
static boolean eletra (char tentativa) {
	if (tentativa>1)
		return false;

if (tentativa<‘A’||tentativa>‘Z’ )

return true;		
return false;		}	
static char pedeLetraNova( char tentativa ) {
do {	

System.out.println(“Introduza a sua tentativa:);

tentativa =  teclado.next().charAt(0);

tentativa = Character.toUpperCase(tentativa);

if(!eletra(tentativa))

System.out.println(“Tentativa inválida, escolha outra!”);
System.out.println(tentativa);	
	}

while (!eletra(tentativa));
;

return tentativa;

}
static boolean jaUsada( char tentativa) {
	int nUsadas = 0; 
	char []usadas= {67};
for (int i=0; i==usadas.length;i++) {

if(i==usadas.length) {

nUsadas++;

usadas[nUsadas]=tentativa;

System.out.println(nUsadas);

return false;

}

}

return true;

}

public static void main(String[] args) {
String palavra = " ";
	char tentativa = 0;

	
	
	palavra = escolhePalavraChave(palavra);
	
	tentativa=pedeLetraNova(tentativa);

}

}

R

Porque o metodo que tenho ai feito para verificar se a letra ja foi usada nao esta a funcionar

R

Desculpe, confundi o que o método faz por conta do nome,

O que realmente você queria que esse método fizesse? Pois ele está uma mistura de adicionar a letra à última palavra com uma “comparação” para descobrir se a letra já foi utilizada ou não.

R

Eu quero é mesmo adicionar a tentativa ao array de char [nUsadas]

R
static boolean jaUsada( char tentativa) {
char []usadas= {67};

for (int i=0; i<=usadas.length;i++) {

if(usadas[i] == tentativa) { //Verifica se a letra  foi utilizada {
    
    System.out.println("Letra já utilizada");
    return false;

}
}

usadas[usadas.length+1] = tentativa; //Caso não tenha sido utilizada ela é adicionada no final 

return true;

}
R

Isso da erro de execuçao na linha onde se adiciona ao usadas.length + 1

R

Tente da seguinte forma:

static boolean jaUsada( char tentativa) {
char []usadas= {67};

for (int i=0; i<usadas.length;i++) {

if(usadas[i] == tentativa) { //Verifica se a letra  foi utilizada {
    
    System.out.println("Letra já utilizada");
    return false;

}
}

usadas[usadas.length] = tentativa; //Caso não tenha sido utilizada ela é adicionada no final 

return true;

}
Criado 11 de janeiro de 2018
Ultima resposta 28 de fev. de 2018
Respostas 11
Participantes 3