Perguntas Radomicas

4 respostas
D

Eu estou criando um algoritmo Java que faça perguntas aletoriamente, e depois fazer uma comparação entre as perguntas e se tiver alguma pergunta igual terá que fazer Math.random novamente.

Eu fiz até a parte do random, daí pra frente eu não sei como fazer !

package Perguntas;

public class Pergunta {

public static void main (String args[])
{
	
	String pergunta[] = new String[5];
	pergunta[0] = "Pergunta A";
	pergunta[1] = "Pergunta B";
	pergunta[2] = "Pergunta C";
	pergunta[3] = "Pergunta D";
	pergunta[4] = "Pergunta E";
	
		int a;
	//for (a=0;a<pergunta.length;a++)
	//{
	//System.out.println(pergunta[a]);
	//}
    
	int i;
	for (a=0;a<pergunta.length;a++)
	{
	   i = (int)(Math.random()* pergunta.length);
		
		System.out.println(pergunta[i]);
		
	}
	
	
}

}

se alguem puder me ajudar, por favor !

Obrigado,
darkdtv

4 Respostas

jcmird

Eu armazenaria todas as perguntas que foram selecionadas em um vetor. E chamaria o metodo random e verificaria nesse vetor se a pergunta ja foi selecionado senaooo … jogo a pergunta na tela … a ideia é por aiii…

abs

luciano.eti

tbm acho que isso vai depender da quantidade de perguntas armazenadas…talvez não seria interessante um ‘txt’

e tbm acesso aleatório para buscar as string’s…

[]'s

Luciano

LPJava

se for muitas perguntas vc pode criar um BD de perguntas e ja com um campo da resposta correta e com um numero de identificacao, quando gerar o numero randomico vc vai la no BD busca a pergunta que ja vem com a resposta e compar com a qual foi escolhida pelo usuario. Vai poupar bastante codigo e manutencao fica melhor.

Lavieri

Uma abordagem que não tem repetições

class Teste {
    /**
     * Um pequeno teste, criando um objeto, adcionando algumas perguntas, e
     * depois sorteando as perguntas.
     * @param args
     */
    public static void main(String[] args) {
       PerguntasRandomicas perguntas = new PerguntasRandomicas()
           .addPergunta("Pergunta A")
           .addPergunta("Pergunta B")
           .addPergunta("Pergunta C")
           .addPergunta("Pergunta D")
           .addPergunta("Pergunta E");

       while(perguntas.hasMaisPerguntas()) {
           System.out.println(perguntas.proximaPergunta());
       }
    }
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Random;

/**
 *
 * @author Tomaz Lavieri
 */
public class PerguntasRandomicas {
    private List<String> perguntasAFazer = new ArrayList<String>();
    private List<String> perguntasFeitas = new ArrayList<String>();
    private Random roleta = new Random();

    /**
     * Adciona uma pergunta a lista de perguntas a serem feitas, e retorna
     * o proprio objeto.
     * @param pergunta A pergunta a ser adcionada.
     * @return Este proprio objeto PerguntasRandomicas
     */
    public PerguntasRandomicas addPergunta(String pergunta) {
        perguntasAFazer.add(pergunta);
        return this;
    }

    /**
     * Informa se ainda há perguntas a serem feitas.
     * @return  <tt>true</tt> caso ainda haja perguntas<br>
     *          <tt>false</tt> caso contrario.
     */
    public boolean hasMaisPerguntas() {
       return perguntasAFazer.size() > 0;
    }

    /**
     * A quantidade de perguntas que ainda faltam ser feita.
     * @return quantidade de perguntas que ainda faltam ser feita.
     */
    public int getQuantidadeDePerguntasRestantes() {
       return perguntasAFazer.size();
    }

    /**
     * A quantidade de perguntas que já foram feitas.
     * @return quantidade de perguntas que já foram feitas.
     */
    public int getQuantidadeDePerguntasFeitas() {
        return perguntasFeitas.size();
    }

    /**
     * Quantidade total de perguntas deste objeto, incluindo as já feitas, e as
     * que ainda serão feitas.
     * @return
     */
    public int size() {
        return perguntasAFazer.size() + perguntasFeitas.size();
    }

    /**
     * Sorteia e retorna a proxima pergunta.
     * @return a proxima pergunta
     * @throws NoSuchElementException quando não existe uma proxima pergunta.
     */
    public String proximaPergunta() {
       if (!hasMaisPerguntas()) throw new NoSuchElementException();
       int sorteada = roleta.nextInt(getQuantidadeDePerguntasRestantes());
       String proximaPergunta = perguntasAFazer.remove(sorteada);
       perguntasFeitas.add(proximaPergunta );
       return proximaPergunta;
    }

    /**
     * A lista (somente leitura) de perguntas que já foram feitas, na exata
     * ordem em que as perguntas foram sorteadas.
     * @return a lista de perguntas feitas.
     */
    public List<String> getPerguntasFeitas() {
       return Collections.unmodifiableList(perguntasFeitas);
    }
    /**
     * A lista (somente leitura) de perguntas que ainda serão feitas.<br>
     * A ordem desta lista é dada pela inserção das perguntas e não é a mesma
     * ordem em que as perguntas serão realizadas.
     * @return a lista de perguntas a serem feitas.
     */
    public List<String> getPerguntasAFazer() {
        return Collections.unmodifiableList(perguntasAFazer);
    }
}
Criado 5 de junho de 2009
Ultima resposta 7 de jun. de 2009
Respostas 4
Participantes 5