Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by EduNog · Dec 15, 2019 at 11:00 AM · scripting problem

help with random quiz questions

I am creating a quiz game, but I have a problem, create the random quiz system, but I can't get the questions to repeat themselves after all the questions have passed.

 [Header("Configuração dos Textos")]
  public Text nomeTemaTxt;
  public Text perguntaTxt;
  public Text infoRespostasTxt;
  public Text notaFinalTxt;
  public Text msg1Txt;
  public Text msg2Txt;
  
  
  [Header("Configuração dos Textos Alternativas")]
  public Text altAtxt;
  public Text altBtxt;
  public Text altCtxt;
  public Text altDtxt;
  [Header("Configuração da Barra")]
  public GameObject barraProgresso;
  [Header("Configuração dos Botões")]
  public Button[] botoes;
  public Color corAcerto, corErro;
  public RectTransform detalhes;
  public RectTransform detalhes1;
  public RectTransform detalhes2;
  public RectTransform detalhes3;
  public RectTransform detalhes4;
  public List perguntasrepetidas = new List();
  [Header("Configuração do Modo de Jogo")]
  public bool perguntasAleatorias;
  public bool utilizarAlternativas;
  public bool mostrarCorreta;
  public int qtdPiscar;
  [Header("Configuração das Perguntas")]
  public string[] perguntas;
  public string[] correta;
  public List listaPerguntas;
  public int qtdPerguntas;
  [Header("Configuração das Alternativas")]
  public string[] alternativasA;
  public string[] alternativasB;
  public string[] alternativasC;
  public string[] alternativasD;
  [Header("Configuração dos Painéis")]
  public GameObject[] paineis;
  public GameObject[] estrela;
  [Header("Configuração das Mensagens")]
  public string[] mensagem1;
  public string[] mensagem2;
  public Color[] corMensagem;
  //---------
  private int idResponder, qtsAcertos, notaMin1Estrela, notaMin2Estrelas, nEstrelas, idTema, idbtnCorreto;
  private float percProgresso, qtdRespondida, notaFinal, valorQuestao;
  private bool exibindoCorreta;
  
  // Start is called before the first frame update
  void Start()
  {
      idTema = PlayerPrefs.GetInt("idTema");
      notaMin1Estrela = PlayerPrefs.GetInt("notaMin1Estrela");
      notaMin2Estrelas = PlayerPrefs.GetInt("notaMin2Estrelas");
      nomeTemaTxt.text = PlayerPrefs.GetString("nomeTema");
      montarListaPerguntas();
      progressaoBarra();
      zerarposicao();
      
     
      valorQuestao = 10 / (float)qtdPerguntas;
      paineis[0].SetActive(true);
      paineis[1].SetActive(false);
      notaMin1Estrela = 5;
      notaMin2Estrelas = 7;
  }
      
  
  // Update is called once per frame
  void Update()
  {
      {
          
      }
  }
  public void zerarposicao()
  {
      detalhes.localPosition = new Vector3(0, -5, 44);
      detalhes1.localPosition = new Vector3(30, -100, 0);
      detalhes2.localPosition = new Vector3(30, -100, 0);
      detalhes3.localPosition = new Vector3(30, -100, 0);
      detalhes4.localPosition = new Vector3(30, -100, 0);
  }
  
  public void montarListaPerguntas()
  {
      if (perguntasAleatorias == true)
      {
          bool addPergunta = true;
          if (qtdPerguntas > perguntas.Length) { qtdPerguntas = perguntas.Length; }
          while (listaPerguntas.Count < qtdPerguntas)
          {
              addPergunta = true;
              int rand = Random.Range(0, perguntas.Length);
              foreach (int idP in listaPerguntas)
              {
                  if (idP == rand)
                  {
                      addPergunta = false;
                  }
              }
              if (addPergunta == true) { listaPerguntas.Add(rand); }
          }
          
      }
      else
      {
          for (int i = 0; i < perguntas.Length; i++)
          {
              listaPerguntas.Add(i);
          }
      }
      perguntaTxt.text = perguntas[listaPerguntas[idResponder]];
      if (utilizarAlternativas == true)
      {
          altAtxt.text = alternativasA[listaPerguntas[idResponder]];
          altBtxt.text = alternativasB[listaPerguntas[idResponder]];
          altCtxt.text = alternativasC[listaPerguntas[idResponder]];
          altDtxt.text = alternativasD[listaPerguntas[idResponder]];
      }
      else
      {
          calcularNotaFinal();
         
      }
  }
  public void responder(string alternativa)
  {
      if (exibindoCorreta == true) { return; }
      if (correta[listaPerguntas[idResponder]] == alternativa)
      {
          qtsAcertos += 1;
      }
      switch (correta[listaPerguntas[idResponder]])
      {
          case "A":
              idbtnCorreto = 0;
              break;
          case "B":
              idbtnCorreto = 1;
              break;
          case "C":
              idbtnCorreto = 2;
              break;
          case "D":
              idbtnCorreto = 3;
              break;
      }
      if (mostrarCorreta == true)
      {
          foreach (Button b in botoes)
          {
              b.image.color = corErro;
          }
          exibindoCorreta = true;
          botoes[idbtnCorreto].image.color = corAcerto;
          StartCoroutine("mostrarAlternativaCorreta");
      }
  }
  public void proximaPergunta()
  {
      idResponder += 1;
      qtdRespondida += 1;
      progressaoBarra();
      if (idResponder < qtdPerguntas)
      {
          perguntaTxt.text = perguntas[listaPerguntas[idResponder]];
          if (utilizarAlternativas == true)
          {
              altAtxt.text = alternativasA[listaPerguntas[idResponder]];
              altBtxt.text = alternativasB[listaPerguntas[idResponder]];
              altCtxt.text = alternativasC[listaPerguntas[idResponder]];
              altDtxt.text = alternativasD[listaPerguntas[idResponder]];
          }
      }
      else
      {
          calcularNotaFinal();
          
          
      }               
          
      }
  void progressaoBarra()
  {
      infoRespostasTxt.text = "Respondendo pergunta " + (qtdRespondida + 1) + " de " + qtdPerguntas + " perguntas";
      percProgresso = qtdRespondida / qtdPerguntas;
      barraProgresso.transform.localScale = new Vector3(percProgresso, 1, 1);
  }
  void calcularNotaFinal()
  {
      notaFinal = (valorQuestao * qtsAcertos);
      if (notaFinal > PlayerPrefs.GetInt("notaFinal_" + idTema.ToString()))
      {
          PlayerPrefs.SetInt("notaFinal_" + idTema.ToString(), (int)notaFinal);
      }
      if (notaFinal == 10) { nEstrelas = 3; }
      else if (notaFinal >= notaMin2Estrelas) { nEstrelas = 2; }
      else if (notaFinal >= notaMin1Estrela) { nEstrelas = 1; }
      notaFinalTxt.text = notaFinal.ToString();
      notaFinalTxt.color = corMensagem[nEstrelas];
      msg1Txt.text = mensagem1[nEstrelas];
      msg1Txt.color = corMensagem[nEstrelas];
      msg2Txt.text = mensagem2[nEstrelas];
      foreach (GameObject e in estrela)
      {
          e.SetActive(false);
      }
      for (int i = 0; i < nEstrelas; i++)
      {
          estrela[i].SetActive(true);
      }
      paineis[0].SetActive(false);
      paineis[1].SetActive(true);
  }
  IEnumerator mostrarAlternativaCorreta()
  {
      for (int i = 0; i < qtdPiscar; i++)
      {
          botoes[idbtnCorreto].image.color = corAcerto;
          yield return new WaitForSeconds(0.2f);
          botoes[idbtnCorreto].image.color = Color.white;
          yield return new WaitForSeconds(0.2f);
      }
      foreach (Button b in botoes)
      {
          b.image.color = Color.white;
      }
      exibindoCorreta = false;
  }

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image lgarczyn · Dec 16, 2019 at 04:56 AM 0
Share

The code is very hard to decipher considering I don't speak the language, but you could just put the quizz in a scène, and reload the scene when it is over.

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

280 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

CS0029 Error cannot implicity convert type 'bool' 'UnityEngine.Rendering.ShadowCastingMode' 1 Answer

[SOLVED]bool is getting reset by no reason 2 Answers

Need help disabling a script in another GameObject 1 Answer

[SOLVED]My code line don't execute 1 Answer

SmoothDamp in my FPS controller. Does not feel like it is working. 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges