Projeto Jogo "Quiz"

4 respostas
R

Olá, Venho aqui nesse tópico pedir a ajuda de vocês para me ajudarem a desenvolver um jogo quiz(perguntas e respostas).
Não quero recebe-lo pronto pois não me serviria em nada, já que este seria apenas um simples exemplo, para testar meus conhecimentos obtidos sobre Java.io até o momento.
Conforme eu for desenvolvendo sempre surge aquelas dúvidas e acontecem surgindo as famosas “gambiarras”, portanto gostaria dos conselhos de pessoas mais experientes para me indicar a melhor maneira de se resolver, pois aprendendo errado será mais dificil aprender a maneira certa futuramente.

Apenas tenho as idéias em um papel por enquanto, então vou postar as dúvidas iniciais e posteriormente postarei os primeiros códigos.

Primeiros Passos:

A principio, criarei 3 classes:

Pergunta.java: //classe como molde da pergunta

Variáveis:
String Pergunta; //guardará a pergunta
String[] array= {alternativa1,alternativa2,alternativa3,alternativa4}; //guardará as 4 alternativa

Métodos:
SetPergunta
SetAlternativas

CriarPergunta.java //classe com uma interface com 1 text area onde será inserida a pergunta e 4 jtextfield onde serão inseridas as alternativas.2 buttons um para salvar a pergunta e outra para criar uma nova

[color=red]Aqui me surge uma dúvida:[/color] Por exemplo para configurar uma pergunta eu criaria um objeto Pergunta(classe criada anteriormente) e usaria seus setters para configurar os valores.
Ex:
Pergunta pergunta = new Pergunta();
pergunta.setPergunta(); …

Quando eu clico para criar uma nova pergunta.

Como faço para cada vez criar o objeto com um nome diferente para quando for serializar?

Quiz.java //classe que irá pegar uma pergunta aleatoriamente com suas respectivas alternativas.Ainda não comecei a pensar sobre ela.

Está meio complicado para entender, amanhã posto mais algumas coisas.

Obrigado para quem puder ajudar.

4 Respostas

R

Deixei meio vago ali em cima, pois escrevi com pressa estava indo dormir.Agora pela manhã fiz a classe Pergunta e uma parte da classe para criar a pergunta.

Pergunta.java

import java.io.*;

public class Pergunta implements Serializable{
	private String pergunta;
	private String array [] = new String[4];
	private int correta;
	

	public  void setPergunta(String pergunta){
		this.pergunta = pergunta;
	}
	
	public void setAlternativas(String alternativa1, String alternativa2, String alternativa3, String alternativa4){
		array[0] = alternativa1;
		array[1] = alternativa2;
		array[2] = alternativa3;
		array[3] = alternativa4;
	}
	
	public void setCorreta(int correta){
		this.correta = correta;
	}
	
	
}

CriarPergunta.java

//Não está o código inteiro, pois se tornaria muito extenso // a parte a gráfica
//está apenas as ações dos botões onde tenho dúvida

//botão para salvar a pergunta em um arquivo serializado
private void Salvar(ActionEvent e) {
		Pergunta pergunta = new Pergunta();
		
		pergunta.setPergunta(textArea1.getText());
		pergunta.setAlternativas(textField1.getText(), 
				textField2.getText(),
				textField3.getText(), 
				textField4.getText());
		
		//configurando alternativa correta
		if(radioButton1.isSelected() == true)
			pergunta.setCorreta(0);
		else if (radioButton2.isSelected() == true)
			pergunta.setCorreta(1);
		else if (radioButton3.isSelected() == true)
			pergunta.setCorreta(2);
		else if (radioButton4.isSelected() == true)
			pergunta.setCorreta(3);
		
		try{
			ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("perguntas.ser"));
			os.writeObject(pergunta);
		}catch(IOException ex){
			ex.printStackTrace();
		}
		
	}

private void NovaPergunta(ActionEvent e) {
		//aqui eu não sei como faço, eu criaria outro objeto e adicionaria no arquivo ou posso usar o mesmo objeto pergunta  que setar valores diferentes???

	}
I

Não tem como colocar vários objetos em um arquivo usando ObjectOutPutStream, vc pode colocar um vetor de objetos, no seu caso um vetor de perguntas.

R
ivo costa:
Não tem como colocar vários objetos em um arquivo usando ObjectOutPutStream, vc pode colocar um vetor de objetos, no seu caso um vetor de perguntas.

?

Tipo

Pergunta pergunta2 = new Pergunta();
Pergunta pergunta3 = new Pergunta();

os.writeObject(pergunta2);
os.writeObject(pergunta3);

?

Isso não é permitido?

I

Se vc fizer isso, ao buscar o objeto depois com o ObjectInputStream vai vir apenas o último objeto inserido.

Pergunta pergunta2 = new Pergunta();
Pergunta pergunta3 = new Pergunta();

os.writeObject(pergunta2);
os.writeObject(pergunta3);

Tem que fazer assim:

Pergunta perguntas[] = new Pergunta[2];
perguntas[0] = new Pergunta();
perguntas[1] = new Pergunta();

os.writeObject(perguntas);

Ou usar arraylist já que tu não sabe quantas perguntas o usuário vai inserir:

ArrayList<Pergunta> array = new ArrayList<Pergunta>();
array.add(new Pergunta());
array.add(new Pergunta());
array.add(new Pergunta());

Pergunta[] perguntas = (Pergunta[])array.toArray();
os.writeObject(perguntas);
Criado 27 de maio de 2008
Ultima resposta 28 de mai. de 2008
Respostas 4
Participantes 2