JOGO QUIS - Como fazer as perguntas serem aleatórias?
2 participantes
Página 1 de 1
JOGO QUIS - Como fazer as perguntas serem aleatórias?
Como eu poderia fazer o meu jogo quiz, rodar as perguntas de forma aleatória?
Eu tentei usar aquele comando de random.range, até deu certo, as perguntas tavam vindo aleatórias.
Mas como cada tema composto por 6 perguntas, as vezes só rodava 2 perguntas outras vezes só 1 e já ia para tela da nota.
E eu queria na verdade que as perguntas as 6 perguntas fossem aleatórias e que não repetissem e só daria nota final depois que rodasse as 6 perguntas.
Alguém sabe como fazer ?
Segue o script que uso para perguntas.
Eu tentei usar aquele comando de random.range, até deu certo, as perguntas tavam vindo aleatórias.
Mas como cada tema composto por 6 perguntas, as vezes só rodava 2 perguntas outras vezes só 1 e já ia para tela da nota.
E eu queria na verdade que as perguntas as 6 perguntas fossem aleatórias e que não repetissem e só daria nota final depois que rodasse as 6 perguntas.
Alguém sabe como fazer ?
Segue o script que uso para perguntas.
- Código:
public class responder : MonoBehaviour {
private int idTema;
public Text pergunta;
public Text respostaA;
public Text respostaB;
public Text respostaC;
public Text respostaD;
public Text InfoRespostas;
public AudioSource m_Audiosource;
public string[] perguntas; //armazena todas as perguntas
public string[] alternativaA; //armazena todas as alternativas A
public string[] alternativaB; //armazena todas as alternativas B
public string[] alternativaC; //armazena todas as alternativas C
public string[] alternativaD; //armazena todas as alternativas D
public string[] corretas; //armazena todas as alternativas corretas
private int idPergunta;
private float acertos;
private float questoes;
private float media;
private int notaFinal;
// Use this for initialization
void Start ()
{
idTema = PlayerPrefs.GetInt ("idTema");
idPergunta = 0;
questoes = perguntas.Length;
pergunta.text = perguntas [idPergunta];
respostaA.text = alternativaA [idPergunta];
respostaB.text = alternativaB [idPergunta];
respostaC.text = alternativaC [idPergunta];
respostaD.text = alternativaD [idPergunta];
InfoRespostas.text = "Respondendo "+(idPergunta + 1).ToString()+" de "+questoes.ToString()+" perguntas.";
}
public void resposta (string alternativa)
{
if (alternativa == "A")
{
if (alternativaA [idPergunta] == corretas [idPergunta])
{
acertos += 1;
m_Audiosource.Play ();
}
}
else if (alternativa == "B")
{
if (alternativaB [idPergunta] == corretas [idPergunta])
{
acertos += 1;
m_Audiosource.Play ();
}
} else if (alternativa == "C") {
if (alternativaC [idPergunta] == corretas [idPergunta])
{
acertos += 1;
m_Audiosource.Play ();
}
} else if (alternativa == "D") {
if (alternativaD [idPergunta] == corretas [idPergunta])
{
acertos += 1;
m_Audiosource.Play ();
}
}
proximaPergunta ();
}
void proximaPergunta()
{
idPergunta += 1; /// se fosse 20 questões aqui seria 19
if(idPergunta <= (questoes-1))
{
pergunta.text = perguntas [idPergunta];
respostaA.text = alternativaA [idPergunta];
respostaB.text = alternativaB [idPergunta];
respostaC.text = alternativaC [idPergunta];
respostaD.text = alternativaD [idPergunta];
InfoRespostas.text = "Respondendo "+(idPergunta + 1).ToString()+" de "+questoes.ToString()+" perguntas.";
}
else
{
{
media = 6 * (acertos / questoes); //calcula a media com base no percentual de acerto
notaFinal = Mathf.RoundToInt(media); //calcula a nota para o proximo inteiro, segundo a regra da matematica
if(notaFinal > PlayerPrefs.GetInt("notaFinal"+idTema.ToString()))
{
PlayerPrefs.SetInt ("notaFinal" + idTema.ToString (), notaFinal);
PlayerPrefs.SetInt("acertos"+idTema.ToString(), (int) acertos);
}
PlayerPrefs.SetInt ("notaFinalTemp" + idTema.ToString (), notaFinal);
PlayerPrefs.SetInt("acertosTemp"+idTema.ToString(), (int) acertos);
SceneManager.LoadScene ("notaFinal");
}
}
}
}
Rayllander- Iniciante
- PONTOS : 2400
REPUTAÇÃO : 1
Respeito as regras :
Re: JOGO QUIS - Como fazer as perguntas serem aleatórias?
estou com um jogo de quiz 90% completo se tiver interesse me envia um email: fecirineu@hotmail.comRayllander escreveu:Como eu poderia fazer o meu jogo quiz, rodar as perguntas de forma aleatória?
Eu tentei usar aquele comando de random.range, até deu certo, as perguntas tavam vindo aleatórias.
Mas como cada tema composto por 6 perguntas, as vezes só rodava 2 perguntas outras vezes só 1 e já ia para tela da nota.
E eu queria na verdade que as perguntas as 6 perguntas fossem aleatórias e que não repetissem e só daria nota final depois que rodasse as 6 perguntas.
Alguém sabe como fazer ?
Segue o script que uso para perguntas.
- Código:
public class responder : MonoBehaviour {
private int idTema;
public Text pergunta;
public Text respostaA;
public Text respostaB;
public Text respostaC;
public Text respostaD;
public Text InfoRespostas;
public AudioSource m_Audiosource;
public string[] perguntas; //armazena todas as perguntas
public string[] alternativaA; //armazena todas as alternativas A
public string[] alternativaB; //armazena todas as alternativas B
public string[] alternativaC; //armazena todas as alternativas C
public string[] alternativaD; //armazena todas as alternativas D
public string[] corretas; //armazena todas as alternativas corretas
private int idPergunta;
private float acertos;
private float questoes;
private float media;
private int notaFinal;
// Use this for initialization
void Start ()
{
idTema = PlayerPrefs.GetInt ("idTema");
idPergunta = 0;
questoes = perguntas.Length;
pergunta.text = perguntas [idPergunta];
respostaA.text = alternativaA [idPergunta];
respostaB.text = alternativaB [idPergunta];
respostaC.text = alternativaC [idPergunta];
respostaD.text = alternativaD [idPergunta];
InfoRespostas.text = "Respondendo "+(idPergunta + 1).ToString()+" de "+questoes.ToString()+" perguntas.";
}
public void resposta (string alternativa)
{
if (alternativa == "A")
{
if (alternativaA [idPergunta] == corretas [idPergunta])
{
acertos += 1;
m_Audiosource.Play ();
}
}
else if (alternativa == "B")
{
if (alternativaB [idPergunta] == corretas [idPergunta])
{
acertos += 1;
m_Audiosource.Play ();
}
} else if (alternativa == "C") {
if (alternativaC [idPergunta] == corretas [idPergunta])
{
acertos += 1;
m_Audiosource.Play ();
}
} else if (alternativa == "D") {
if (alternativaD [idPergunta] == corretas [idPergunta])
{
acertos += 1;
m_Audiosource.Play ();
}
}
proximaPergunta ();
}
void proximaPergunta()
{
idPergunta += 1; /// se fosse 20 questões aqui seria 19
if(idPergunta <= (questoes-1))
{
pergunta.text = perguntas [idPergunta];
respostaA.text = alternativaA [idPergunta];
respostaB.text = alternativaB [idPergunta];
respostaC.text = alternativaC [idPergunta];
respostaD.text = alternativaD [idPergunta];
InfoRespostas.text = "Respondendo "+(idPergunta + 1).ToString()+" de "+questoes.ToString()+" perguntas.";
}
else
{
{
media = 6 * (acertos / questoes); //calcula a media com base no percentual de acerto
notaFinal = Mathf.RoundToInt(media); //calcula a nota para o proximo inteiro, segundo a regra da matematica
if(notaFinal > PlayerPrefs.GetInt("notaFinal"+idTema.ToString()))
{
PlayerPrefs.SetInt ("notaFinal" + idTema.ToString (), notaFinal);
PlayerPrefs.SetInt("acertos"+idTema.ToString(), (int) acertos);
}
PlayerPrefs.SetInt ("notaFinalTemp" + idTema.ToString (), notaFinal);
PlayerPrefs.SetInt("acertosTemp"+idTema.ToString(), (int) acertos);
SceneManager.LoadScene ("notaFinal");
}
}
}
}
Tópicos semelhantes
» Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
» Jogo Quiz perguntas aleatórias
» sistema de perguntas aleatórias de maneira que elas só se repetissem ao se passar todas
» COMO FAZER JOGO DE FPS!
» como fazer um jogo de fps no unity 5
» Jogo Quiz perguntas aleatórias
» sistema de perguntas aleatórias de maneira que elas só se repetissem ao se passar todas
» COMO FAZER JOGO DE FPS!
» como fazer um jogo de fps no unity 5
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos