Criando "jogo" - usando classe Scanner

7 respostas
JeffersonAsg

Boa Noite galera, :smiley:
Seguinte estou tendo dificuldade em resolver o seguinte desafio lançado abaixo:

Faça um programa que deve apresentar, aleatoriamente, algumas palavras [10] para o jogador e ele deve responder se as palavras estão escritas corretamente com SIM ou NÃO.

O jogador deve receber 3 palavras diferentes a cada rodada e deve acertar 2 duas dessas palavras para ganhar o jogo!

Só que tem que ser feito usando a classe Scanner (método de saída).
Criando um menu com as seguinte opções:

  • Inserir Informações; - onde o Administrador poderá inserir palavras novas;
  • Alterar Informações; - onde o Administrados poderá alterar alguma palavra;
  • Listar Informações; - mostrar todas palavras corretas (e corrigir as erradas)
  • Jogar; - onde começara o jogo para o novo jogador.

Alguem tem idéia de como fazer isso? Ainda não tenho um conhecimento muito amplo em JAVA :frowning:

7 Respostas

G

acho que tu pode cria um vetor pras palavras, ai na saida dela pode usar um random e a posição i, logo sairia palavras aleatorias

em c tem uma função que compara strings strcmp acho que é isso. não sei se tem alguma coisa parecida no java, mas se tiver, tera que usar isso para comprar char a char pra ver se esta certa

ViniGodoy

Por favor, ao criar tópicos não deixe o título INTEIRO EM LETRAS MAIÚSCULAS.

prog.tiago

Bom dia Jefferson,

Seja bem vindo ao GUJ!

A ideia do Gustavo é perfeita, criar um vetor e sortear a posição que deverá ser exibida.
Por exemplo, para um vetor de 20 posições com 20 palavras distintas, ao ser sorteado a posição 5, a palavra no vetor 5 deverá ser utilizada.

Em Java, pode-se utilizar o método .equals para comparar o conteúdo de Strings. Por exemplo:

String palavra1="Java";
String palavra2="Java";

if(palavra1.equals(palavra2)){
     //São iguais
}

No que diz respeito ao menu, pode se utilizar um switch. Para cada opção do menu define-se um número. Pede-se a entrada do usuário para a opção desejada…

Mais ou menos assim:

int opcaoDesejada=x;
switch(opcaoDesejada){
    case 1:
        //Abrir InserirInformacoes
        break;
    case 2:
        //Abrir AlterarInformacoes
        break;
}

E por aí vai…

douglaskd

eu faria mais ou menos assim

classes:

public class Palavra{

private String palavra;

private Boolean correta;

//get.

//set.

}
public class Jogo{

ArrayList<Palavra> ListaPalavras;

public static void main(){

//menu

if(jogar() = true){

//print you win;

}

}
public boolean jogar(){

int erros = 0;

Colections.suffle(ListaPalavras) <- embaralha seu ArrayList....

for(int i=0;i<3;i++){
     erros = 0;
     System.out.println(i + "esta Correto ? s[sim] n[nao]" + ListaPalavras.get(i).getPalavra() ); -> imprime um elemento

     String op = scanner.nextLine();

     Boolean opcao = op.equals("s") ? True : False;

     if (opcao !=  ListaPalavras.get(i).getCorreta())
     {
           erros++;
     } 

}

if(erros < 3){
     return true;
}

return false;

}

penso em algo mais ou menos assim

JeffersonAsg

Obrigado gente! Vou tentar fazer com as informações que me deram.
Qualquer duvida eu volto aqui :smiley:

JeffersonAsg
douglaskd:
eu faria mais ou menos assim

classes:

public class Palavra{

private String palavra;

private Boolean correta;

//get.

//set.

}
public class Jogo{

ArrayList<Palavra> ListaPalavras;

public static void main(){

//menu

if(jogar() = true){

//print you win;

}

}
public boolean jogar(){

int erros = 0;

Colections.suffle(ListaPalavras) <- embaralha seu ArrayList....

for(int i=0;i<3;i++){
     erros = 0;
     System.out.println(i + "esta Correto ? s[sim] n[nao]" + ListaPalavras.get(i).getPalavra() ); -> imprime um elemento

     String op = scanner.nextLine();

     Boolean opcao = op.equals("s") ? True : False;

     if (opcao !=  ListaPalavras.get(i).getCorreta())
     {
           erros++;
     } 

}

if(erros < 3){
     return true;
}

return false;

}

penso em algo mais ou menos assim

Nessa parte (creio que seja o método):

public static void main(){

//menu

if(jogar() = true){

//print you win;

eu teria de fazer o que mais ou menos? Não compreendi muito bem!

douglaskd

Jefferson o Método jogar retorna true se o jogador vencer e false se ele perder

então esse código (esqueci o == arrumado agora):

if(jogar() == true){  
  
//print you win;  
  
}

é a mesma coisa de fazer:

Boolean vitoria;

vitoria = jogar();

if(vitoria == true){
System.out.println("Você venceu);
}
else{
System.out.println("Você perdeu);
}

você comentou sobre "rodadas, isso vou deixar pra você implementar...mas tem a ver com um while ai invés do if e um contador de rodadas

Criado 27 de março de 2013
Ultima resposta 28 de mar. de 2013
Respostas 7
Participantes 5