Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* meu servlet recebe um comando e chama o metodo getSimulado */
- private void getSimulado(HttpServletRequest request, HttpServletResponse response) throws Exception{
- ArrayList<ArrayList<Integer>> listaPosicao = new ArrayList<ArrayList<Integer>>();
- int catSim = Integer.parseInt(request.getParameter("categoriaSimulado"));
- int qtdQuestoes = Integer.parseInt(request.getParameter("qtdQuestoes"));
- ArrayList<Pergunta> perguntasAll = PerguntaDbUtil.getPerguntasByCategoria(catSim);
- ArrayList<Pergunta> perguntasSelected = new ArrayList<Pergunta>();
- Pergunta pergunta;
- int aux = -1;
- Random rnd = new Random();
- //perguntasSelected recebe qtdQuestoes perguntas de perguntasAll
- while(perguntasSelected.size() < qtdQuestoes) {
- aux = rnd.nextInt(qtdQuestoes) + 1;
- pergunta = perguntasAll.get(aux);
- if (perguntasSelected == null)
- perguntasSelected.add(pergunta);
- if (perguntasSelected.contains(pergunta)) {
- continue;
- }else {
- perguntasSelected.add(pergunta);
- }
- }
- //gera posição aleatoria das respostas
- aux = 0;
- while (aux < perguntasSelected.size()) {
- listaPosicao.add(getRandomSequence());
- aux++;
- }
- request.setAttribute("PERGUNTAS_SIM", perguntasSelected);
- request.setAttribute("PERGUNTAS_POS", listaPosicao);
- RequestDispatcher dispatcher = request.getRequestDispatcher("/simulado-test.jsp");
- dispatcher.forward(request, response);
- }
- private ArrayList<Integer> getRandomSequence() throws Exception{
- ArrayList<Integer> listaSequence = new ArrayList<Integer>();
- Random rnd = new Random();
- boolean x1 = false, x2 = false, x3 = false, x4 = false;
- int count = 0;
- int tempNum = 0;
- while (count < 4)
- {
- tempNum = rnd.nextInt(4);
- if ((tempNum==0) && (x1 == false)) {
- x1 = true;
- listaSequence.add(tempNum);//= tempNum;
- count++;
- } else if ((tempNum==1) && (x2 == false)) {
- x2 = true;
- listaSequence.add(tempNum);
- count++;
- }else if ((tempNum==2) && (x3 == false)) {
- x3 = true;
- listaSequence.add(tempNum);
- count++;
- }else if ((tempNum==3) && (x4 == false)) {
- x4 = true;
- listaSequence.add(tempNum);
- count++;
- }
- }
- return listaSequence;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement