E ai Galera, td certo
Então, estou com um pequeno problema, e espero q alguem possa me ajudar!
Tenho q fazer um quiz para dispositivos móveis. o código já está pronto, mas preciso fazer com que as perguntas do quiz apareçam de modo aleatório.
Como faço isso
Segue abaixo o código já pronto.
Se alguem puer me ajudar…agradeço!!!
Valew…
JM
Código!
import javax.microedition.midlet.<em>;
import javax.microedition.lcdui.</em>;
import javax.microedition.rms.RecordStore;
import <a href="http://java.io">java.io</a>.*;
public class Lab6 extends MIDlet implements CommandListener{
private RecordStore rs = null;
private Display display;
private Form fmEntradaNome;
private Form fmEscolhetema;
private TextField tfNome;
private Command cmAvancar1;
private ChoiceGroup cgTema1;
private Command cmIniciar;
private Form fmPergunta2;
private ChoiceGroup cgPergunta2;
private Command cmAvancar3;
private int QtAcertos = 0;
private int QtdErros = 0;
private int inicialIndex;
private int Pergunta;
private String opCorreta;
private final String NOME_ARMAZEM_Pergunta = “Perguntas”;
public Lab6 () {
display = Display.getDisplay(this);
Pergunta = 0;
fmEntradaNome = new Form(“Entra do nome”);
tfNome= new TextField(“Entre com seu nome”,"",10,1);
fmEntradaNome.append(tfNome);
cmAvancar1 = new Command(“Avançar”,Command.SCREEN,1);
fmEntradaNome.addCommand(cmAvancar1);
fmEntradaNome.setCommandListener(this);
fmEscolhetema = new Form (“Escolha o Tema”);
cgTema1 = new ChoiceGroup(“Opções”,Choice.EXCLUSIVE);
cgTema1.append (“Futebol”, null);
cgTema1.append (“Desenhos”,null);
cgTema1.append (“Filmes”, null);
cgTema1.append (“Novelas”, null);
cmIniciar = new Command (“Iniciar”, Command.SCREEN,1);
fmEscolhetema.append(cgTema1);
fmEscolhetema.addCommand(cmIniciar);
fmEscolhetema.setCommandListener(this);
fmPergunta2 = new Form(“Pergunta”);
cmAvancar3 = new Command(“Avançar”,Command.SCREEN,2);
cgPergunta2 = new ChoiceGroup("",Choice.EXCLUSIVE);
fmPergunta2.append(cgPergunta2);
fmPergunta2.addCommand(cmAvancar3);
fmPergunta2.setCommandListener(this);
PreparaDados();
}
public void startApp() {
display.setCurrent (fmEntradaNome);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional){
}
public void commandAction(Command c, Displayable d)
{
if (c==cmIniciar)
{
Pergunta ++;
BuscarPergunta(Pergunta);
display.setCurrent (fmPergunta2);
}
else
{
if ( c==cmAvancar1)
{
display.setCurrent (fmEscolhetema);
}
else
{
if (c==cmAvancar3)
{
String resultadoResposta = cgPergunta2.getString(cgPergunta2.getSelectedIndex());
if (resultadoResposta.equals(opCorreta))
{
QtAcertos ++;
}
else
{
QtdErros ++;
}
Pergunta ++;
if (Pergunta <= 8)
{
BuscarPergunta(Pergunta);
}
else
{
cgPergunta2.deleteAll();
cgPergunta2.setLabel("Total de Acertos: " + String.valueOf(QtAcertos));
}
}
}
}
}
public void AbrirRecordStore(String nomeArmazem){
try{
rs = RecordStore.openRecordStore(nomeArmazem, true);
}catch (Exception e){
e.printStackTrace();
}
}
public void FechaRecordStore(){
try
{
rs.closeRecordStore();
}
catch (Exception e){
e.printStackTrace();
}
}
public void InsereDados(ByteArrayOutputStream strmBytes, DataOutputStream strmDataType,
String Pergunta, String Opcao1, String Opcao2, String Opcao3, String Opcao4, String RespostaCorreta)
{
try
{
strmDataType.writeUTF(Pergunta);
strmDataType.writeUTF(Opcao1);
strmDataType.writeUTF(Opcao2);
strmDataType.writeUTF(Opcao3);
strmDataType.writeUTF(Opcao4);
strmDataType.writeUTF(RespostaCorreta);
strmDataType.flush();
byte[] record;
record = strmBytes.toByteArray();
rs.addRecord(record,0,record.length);
strmBytes.reset();
}
catch(Exception e)
{
}
}
public void PreparaDados()
{
AbrirRecordStore(NOME_ARMAZEM_Pergunta);
try
{
ByteArrayOutputStream strmBytes = new ByteArrayOutputStream();
DataOutputStream strmDataType = new DataOutputStream(strmBytes);
InsereDados(strmBytes,strmDataType,"Quem vai ganhar a libertadores?","São Paulo","Libertad","Cruzeiro","Internacional","Libertad");
InsereDados(strmBytes,strmDataType,"Quem vai ser o artilheiro do brasileiro?","Fred","Fernandão","Ronaldo","Kleber","Fred");
InsereDados(strmBytes,strmDataType,"Dos times abaixo, qual tem mais chance de cair para serie B?","Avai","Palmeiras","Vasco","Fluminense","Palmeiras");
InsereDados(strmBytes,strmDataType,"Quem foi o campeão da copa de 86?","Brasil","França","Argetina","Italia","Argentina");
InsereDados(strmBytes,strmDataType,"Quantas vezes o atacante Dagoberto (São Paulo) foi substituído no Brasileirão 2007?","23","15","19","21","21");
InsereDados(strmBytes,strmDataType,"Apenas três clubes da Série A disputaram todos os anos a principal divisão do Brasileiro. Quais foram?","Cruzeiro, Flamengo e Internacional","Flamengo, Goiás e São Paulo","Atlético/PR, São Paulo e Santos","Fluminense, Internacional e Santos","Atlético/PR, São Paulo e Santos");
InsereDados(strmBytes,strmDataType,"Que nome recebeu a primeira edição do campeonato, em 1971?","Campeonato Brasileiro de 1971","Primeiro Campeonato Nacional de Clubes","Taça Brasil","Taça Roberto Gomes Pedrosa","Primeiro Campeonato Nacional de Clubes");
InsereDados(strmBytes,strmDataType,"Desde que começou a era dos pontos corridos, qual o time que menos pontos totalizou?","Portuguesa","Santa Cruz","Ipatinga","América/RN","América/RN");
strmBytes.close();
strmDataType.close();
}
catch (Exception e)
{
e.printStackTrace();
}
FechaRecordStore();
}
public void BuscarPergunta(int PerguntaDesejada)
{
AbrirRecordStore(NOME_ARMAZEM_Pergunta);
try
{
byte[] recData = new byte[500];
ByteArrayInputStream strmBytes = new ByteArrayInputStream(recData);
DataInputStream strmDataType = new DataInputStream(strmBytes);
String Questao, Opcao1, Opcao2, Opcao3, Opcao4;
rs.getRecord(PerguntaDesejada,recData,0);
Questao = strmDataType.readUTF();
Opcao1 = strmDataType.readUTF();
Opcao2 = strmDataType.readUTF();
Opcao3 = strmDataType.readUTF();
Opcao4 = strmDataType.readUTF();
opCorreta = new String(strmDataType.readUTF());
cgPergunta2.deleteAll();
cgPergunta2.setLabel(new String(Questao));
cgPergunta2.append(new String(Opcao1), null);
cgPergunta2.append(new String(Opcao2), null);
cgPergunta2.append(new String(Opcao3), null);
cgPergunta2.append(new String(Opcao4), null);
strmBytes.reset();
strmBytes.close();
strmDataType.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
FechaRecordStore();
}
}