SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Meu personagem parou de andar , sem que eu alterasse ele
Problema com terreno!
Jogo Quiz perguntas aleatórias
Transição de cenas Bug com Scripts
Pintura na tela
Anti Pirataria
Manter a última posic de objetos após sair e voltar de cena
Alguem me ajuda em um script!
Camera
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Erros ao tentar build para android!
Teleporte do player com outro objeto!
Media entre pontos e tempo!
Vídeo player não mostra nada
(Duvida)Sistema de estrelas
Filhos dos filhos
Construção de um save das configurações e ir pro jogo com as config certas
Duvida na hora da POSTAGEM na PLAY STORE
Auto posicionar objeto
Como dar um clique em um determinado botão através de Script
Como faço as personagens causarem dano (e vice-versa)?
Dúvida no uso de loop no Unity
Duvida em Python
Preciso de Programadores, Músicos e Modeladores.
Como usar LOD Group para usar no Mass Place Trees
Como Criar um Sistema de Coop? (Photon)
Fighter camera 3D tekken style, boxing style
Erro no Script- "The script needs to derived from MonoBehavior"
[TUTORIAL] Fixed Joint e Spring Joint - Unity 5
Música Grátis
Not a Dream - Formação de Equipe
Como deixar o código mais dinâmico
Duvida Shader para celular
Ideia para algum jogo
Aplicativo não instalado
Tela cheia em android
duvida de raytracing
[Em Desenvolvimento] Battles of Worlds
[Formação de Equipe] Battles of Worlds
Box Collider 2D Pausando o Jogo.
Como fazer um sistema para conectar objetos?
Jogos Pagos e proteção
[DÚVIDA] sair som do objeto ao pressionar uma tecla
Seleção de personagens sem usar ele como prefab
Duvida Postagem na Play Store
Fazer o player rodar a animação até o final
Ofuscar
Preciso de Ajuda Estou a desenvolver um projeto!
[TUTORIAL] Joystick vistual para mobile
desativa objecto
IDE editor C#
Porque o meu BoxCollider2D não desativa?
Sistema De Skin Na Unity
erro ao abrir projeto na unity 2019.2.0
Jogador Flicando no chão
Mostrar eventos no Inspector
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Algumas Maneiras de Ganhar Dinheiro Com o Blender e Modelagem 3D
[TUTORIAL] Salvar SCORE e substituir caso faça mais pontos.
aplicativo travando
e ai galera to tendo poblema com wheel collider
Shader Editor travando a cada alteração nas propriedades
Tela inteira no Android
Scale Factor de Modelos Faz Diferença Na Performacer do Jogo?
Picos de Queda de FPS!
ERRO NA UNITY, AJUDEM POR FAVOR
Como fazer uma tecla ser pressionado x vezes.
Vamos criar uma comunidade no Discord!
[Projeto em Andamento] Favela Combat - Multiplayer online (Android & iOS)
Como ativar e desativar o Box Collider utilizando o RayCast.
[RESOLVIDO] Player 2D girando ao descer de plataforma
Road Life - Jogo Mundo Aberto RPG
Como parar o spawn aleatório?
[RESOLVIDO] Pêndulo 2D
[RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Crio Ícones Personalizados Para Jogos
Metadados recusados AppleConnect [Screenshots]
Ajuda na criação de um jogo de Xadrez 3D
> Posso achar Bugs facilmente <
Meu Jogo inspirado em resident evil 2 remake
Unity + Photon 2
[RESOLVIDO] tira uma duvida
[TUTORIAL] Campo de visão dos inimigos (Enemy FOV) com Raycast ou OverlapSphere
Contagem de tempo em classes abstratas
Erro ao compilar em webGL
[RESOLVIDO] Animação na Movimentação (Parado, Andar e Correr)
[RESOLVIDO] Parâmetro "Out" não existe (Duvida com Script)
Duvida de movimentação de câmera 2D (Sem personagem)
[RESOLVIDO] Colocando meu jogo para 64 bits
(Animator) Animação bugada no animator!
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
[RESOLVIDO] Porque o Vector2.Distance não está funcionando?
[TRETA BR] GAME QUASE FINALIZADO !
Algumas perguntas sobre cenas e transições
Sistema de "Avaliação" / Probabilidade / Notas
Problema com boxes colliders
Dúvida quando a interferência de uma colisão em um sistema de chute e passe
Bloom no Android
Duvidas ao transformar um GameObjeto em Prefab
Hoje à(s) 9:21 pm
Hoje à(s) 8:54 pm
Hoje à(s) 2:59 pm
Hoje à(s) 2:20 pm
Hoje à(s) 10:42 am
Hoje à(s) 7:42 am
Ontem à(s) 3:07 pm
Ter Set 17, 2019 8:22 pm
Ter Set 17, 2019 8:06 pm
Ter Set 17, 2019 4:29 pm
Ter Set 17, 2019 4:10 pm
Ter Set 17, 2019 1:32 pm
Ter Set 17, 2019 3:01 am
Ter Set 17, 2019 1:30 am
Seg Set 16, 2019 11:03 pm
Seg Set 16, 2019 8:21 pm
Seg Set 16, 2019 5:37 pm
Seg Set 16, 2019 4:07 pm
Seg Set 16, 2019 4:11 am
Seg Set 16, 2019 2:36 am
Seg Set 16, 2019 12:22 am
Dom Set 15, 2019 11:21 pm
Dom Set 15, 2019 8:29 pm
Dom Set 15, 2019 5:52 pm
Dom Set 15, 2019 4:41 pm
Dom Set 15, 2019 3:52 pm
Dom Set 15, 2019 12:42 pm
Dom Set 15, 2019 12:41 pm
Dom Set 15, 2019 11:20 am
Dom Set 15, 2019 1:58 am
Dom Set 15, 2019 12:08 am
Sab Set 14, 2019 8:45 pm
Sab Set 14, 2019 7:55 pm
Sab Set 14, 2019 7:07 pm
Sab Set 14, 2019 7:06 pm
Sab Set 14, 2019 7:05 pm
Sab Set 14, 2019 6:58 pm
Sab Set 14, 2019 5:00 pm
Sab Set 14, 2019 4:57 pm
Sab Set 14, 2019 1:49 pm
Sab Set 14, 2019 12:37 am
Sex Set 13, 2019 10:58 pm
Sex Set 13, 2019 10:42 pm
Sex Set 13, 2019 8:58 pm
Sex Set 13, 2019 8:33 pm
Sex Set 13, 2019 8:28 pm
Sex Set 13, 2019 8:19 pm
Sex Set 13, 2019 8:17 pm
Sex Set 13, 2019 8:08 pm
Sex Set 13, 2019 8:06 pm
Sex Set 13, 2019 8:04 pm
Sex Set 13, 2019 2:40 pm
Sex Set 13, 2019 5:02 am
Sex Set 13, 2019 4:59 am
Sex Set 13, 2019 4:50 am
Sex Set 13, 2019 4:41 am
Sex Set 13, 2019 4:26 am
Sex Set 13, 2019 4:19 am
Sex Set 13, 2019 4:17 am
Sex Set 13, 2019 3:53 am
Sex Set 13, 2019 3:44 am
Sex Set 13, 2019 3:35 am
Sex Set 13, 2019 3:34 am
Sex Set 13, 2019 3:06 am
Sex Set 13, 2019 2:44 am
Sex Set 13, 2019 2:40 am
Sex Set 13, 2019 2:31 am
Qui Set 12, 2019 9:46 pm
Qui Set 12, 2019 9:46 pm
Qui Set 12, 2019 4:43 pm
Qui Set 12, 2019 3:22 pm
Qui Set 12, 2019 2:50 pm
Qua Set 11, 2019 10:05 pm
Qua Set 11, 2019 9:14 pm
Qua Set 11, 2019 1:16 pm
Qua Set 11, 2019 11:58 am
Qua Set 11, 2019 9:03 am
Qua Set 11, 2019 1:45 am
Ter Set 10, 2019 10:52 pm
Ter Set 10, 2019 6:28 pm
Ter Set 10, 2019 10:12 am
Ter Set 10, 2019 12:38 am
Seg Set 09, 2019 10:04 pm
Seg Set 09, 2019 6:08 pm
Seg Set 09, 2019 2:57 pm
Sab Set 07, 2019 7:23 pm
Sab Set 07, 2019 1:14 pm
Sab Set 07, 2019 12:12 pm
Sex Set 06, 2019 9:06 pm
Sex Set 06, 2019 11:44 am
Qui Set 05, 2019 11:30 pm
Qui Set 05, 2019 10:57 pm
Qui Set 05, 2019 6:26 pm
Qua Set 04, 2019 11:38 pm
Qua Set 04, 2019 9:02 pm
Ter Set 03, 2019 4:42 pm
Ter Set 03, 2019 2:52 pm
Ter Set 03, 2019 12:04 pm
Ter Set 03, 2019 10:14 am
mydaegon
lunaticsgames
MayLeone
MayLeone
Zack2
diegopds
MayLeone
gutovic29
Fagner
MarcosSchultz
Daniel Dória
lesgoy
danielPedra90
ffabim
poyser
NKKF
lucaspoiob
gtcmcsgo
MayLeone
lesgoy
Swordsdragon
joffersoju
victorgx22
LardosJogos
tr4ssh
deikson
Josh123
Samuelostgamer
welberpv2022
JohnRambo
LardosJogos
Hamassfall
SteveRogers
LúcioHenrique098
lesgoy
lesgoy
SteveRogers
Dom3000
Dom3000
Newba
henriquegames501
guimaraf
gcs13
garnios
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
NKKF
MayLeone
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
JohnRambo
dkrazor
recagonlei
CyberPh4ntom
NKKF
TecnoGames
Hamassfall
c4stor
Magnatah
numb123
JohnRambo
LardosJogos
RafaelSquid1
billybmx
katymarques
hao3726
MayLeone
Socates
LardosJogos
Newba
SteveRogers
garnios
JohnVitor
garnios
Hamassfall
ruanzikaad
Magnatah
Mancha
SteveRogers
gabrimo
lesgoy
garnios

Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Ir em baixo

DÚVIDA Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Sex Mar 15, 2019 2:49 pm

O código é este:

Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

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 string[] perguntas;
    public string[] alternativaA;
    public string[] alternativaB;
    public string[] alternativaC;
    public string[] alternativaD;
    public string[] corretas;

    private int idPergunta;

    private float acertos;
    private float questoes;
    private float media;
    private int notaFinal;
    private object usedValues;

    // 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;
            }


        }
        else if (alternativa == "B")
        {
            if (alternativaB[idPergunta] == corretas[idPergunta])
            {

                acertos += 1;
            }

        }

        else if (alternativa == "C")
        {
            if (alternativaC[idPergunta] == corretas[idPergunta])
            {

                acertos += 1;
            }

        }

        else if (alternativa == "D")
        {
            if (alternativaD[idPergunta] == corretas[idPergunta])
            {
                acertos += 1;
            }

        }

        proximaPergunta();

    }




  
    void proximaPergunta()
    {



        idPergunta += 1;

        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 = 10 * (acertos / questoes);
            notaFinal = Mathf.RoundToInt(media);

            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);


            Application.LoadLevel("notaFinal");


        }


    

    }




}

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por MarcosSchultz em Sex Mar 15, 2019 5:09 pm

Isso é um tutorial? Uma dúvida?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 62326
REPUTAÇÃO : 2353
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D Aad8pUi

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Sex Mar 15, 2019 11:27 pm

@MarcosSchultz escreveu:Isso é um tutorial? Uma dúvida?

Está em "Duvidas em geral", então sim, é uma duvida. Não sei como fazer isto...

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por MayLeone em Dom Mar 17, 2019 3:03 pm

Do jeito que está, fica dificil implementar uma aleatoriedade, recomendo mudar a arquitetura do código.
Dê uma olhada nesse tutorial, talvez possa te ajudar: http://compilemosfacil.blogspot.com/2018/01/desenvolvendo-um-jogo-de-quiz-com.html
MayLeone
MayLeone
Instrutor

Feminino PONTOS : 1206
REPUTAÇÃO : 321
Áreas de atuação : Unity & C#
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D Aad8pUi

Ver perfil do usuário http://compilemosfacil.blogspot.com.br

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Dom Mar 17, 2019 3:42 pm

pelo jeito, vc precisa aleatorizar a pergunta, porem, não poderia repetir, ao meu entender no código o idpergunta é oque faz cada questão.

se utilizar um idpergunta = random.range(0,200); aleatorizaria de 0 a 200, porem a mesma pergunta poderia aparecer diversas vezes.

oque poderia ser feito é:
criar um grupo de bool - public bool[] Respondidas.
assim que uma bool for respondida deixar true.
depois para trocar as perguntas
idpergunta = random.range(0,perguntas.lenght); // isto pega o max de perguntas possíveis
depois disso vc checa pra ver se já foi respondida
if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função

}

isto sim seria aleatório a posição das perguntas, e elas não se repetiriam.
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1376
REPUTAÇÃO : 15
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 4:13 pm

@luiz12345 escreveu:pelo jeito, vc precisa aleatorizar a pergunta, porem, não poderia repetir, ao meu entender no código o idpergunta é oque faz cada questão.

se utilizar um idpergunta = random.range(0,200); aleatorizaria de 0 a 200, porem a mesma pergunta poderia aparecer diversas vezes.

oque poderia ser feito é:
criar um grupo de bool - public bool[] Respondidas.
assim que uma bool for respondida deixar true.
depois para trocar as perguntas
idpergunta = random.range(0,perguntas.lenght); // isto pega o max de perguntas possíveis
depois disso vc checa pra ver se já foi respondida
if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função

}

isto sim seria aleatório a posição das perguntas, e elas não se repetiriam.


Fiz assim:

Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class responder : MonoBehaviour {

    private int idTema;

    public bool[] Respondidas.

    public Text pergunta;
    public Text respostaA;
    public Text respostaB;
    public Text respostaC;
    public Text respostaD;
    public Text infoRespostas;

    public string[] perguntas;
    public string[] alternativaA;
    public string[] alternativaB;
    public string[] alternativaC;
    public string[] alternativaD;
    public string[] 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 = random.range(0, perguntas.lenght); // isto pega o max de perguntas possíveis
        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;
            }


        }
        else if (alternativa == "B")
        {
            if (alternativaB[idPergunta] == corretas[idPergunta])
            {

                acertos += 1;
            }

        }

        else if (alternativa == "C")
        {
            if (alternativaC[idPergunta] == corretas[idPergunta])
            {

                acertos += 1;
            }

        }

        else if (alternativa == "D")
        {
            if (alternativaD[idPergunta] == corretas[idPergunta])
            {
                acertos += 1;
            }

        }

        proximaPergunta();

    }


    void proximaPergunta()
    {
        idPergunta += 1;

        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 = 10 * (acertos / questoes);
            notaFinal = Mathf.RoundToInt(media);

            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);


            Application.LoadLevel("notaFinal");
        }
    }

    if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função
}

}


Porém deu este erro: "Unedxpected symbol "public" in class, struct, or interface member declaration". Aparentemente foi no "public Text pergunta;"

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 4:24 pm

Eu consertei algumas coisas no código, mas ainda da erro (principalmente no "if").

public bool[] Respondidas;

idPergunta = Random.Range (0, perguntas.Lenght); // isto pega o max de perguntas possíveis

if(Respondidas[idPergunta] == true){
proximaPergunta();
return; // para retornar a função
}

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Dom Mar 17, 2019 5:50 pm

se o erro for quando da o play, deve ser porque o numero de bool respondidas n é igual ao numero de perguntas. tipo existem 20 perguntas mais n colocou nenhuma bool.

se o erro for no código deve ser o local onde esta chamando este if(), ou então na parte onde ele invoca a própria void.

um jeito seria em vez de void, colocar no update, pois é necessário checar varias vezes, pois se existirem 20 perguntas, e ele já respondeu 19, vai ter uma chance de 5% do script pegar a pergunta restante, ou seja talvez ele faça essa verificação mais de 50x

para colocar no update:
1-crie uma bool normal com um nome tipo 

proximaPergunta.
2-na void update, cheque se ela esta true. if(proximaPergunta){}
3-remova a void proximaPergunta, e coloque ela inteira dentro do if que você criou na update.
4- no final do if() com todos os parâmetros que antes estava na void, adicione: proximaPergunta = false;
5-adicione o que eu havia dito antes.

idPergunta = Random.Range (0, perguntas.Lenght); // lembre-se de add isto na parte inicial do if

if(Respondidas[idPergunta] == true){ // note que n é necessário deixar true o proximaPergunta.
return; 
}
aqui em baixo o código da void.


luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1376
REPUTAÇÃO : 15
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:23 pm

Eu coloquei 10 perguntas em cada fase, mas algumas eu colocarei mais perguntas e outras menos. O erro foi no código não na hora do play.

Eu coloquei o if no void proximaPergunta e funcionou. Ficou aleatório. Mas quando clica, a próxima pergunta não vai, da erro.

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:27 pm

e outro erro foi o "Lenght" que na verdade é "Length", mas já consertei.

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:30 pm

Ficou assim:

Código:
void proximaPergunta()
    {
        idPergunta += 1;

        if (Respondidas[idPergunta] == true)
        {
            proximaPergunta();
            return; // para retornar a função
        }

        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 = 10 * (acertos / questoes);
            notaFinal = Mathf.RoundToInt(media);

            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);


            Application.LoadLevel("notaFinal");
        }
    }

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 12:08 pm

Diz que o erro é em         if (Respondidas[idPergunta] == true)

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 6:30 pm

Apaguei está parte do código (abaixo) e funcionou. Por enquanto as perguntas não estão repetidas e quando clica ela vai pra próxima pergunta.

Código:
 if (Respondidas[idPergunta] == true)[size=14][/size]        {[size=14][/size]            proximaPergunta();[size=14][/size]            return; // para retornar a função[size=14][/size]        }




Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class responder : MonoBehaviour {

    private int idTema;

    public bool[] Respondidas;


    public Text pergunta;
    public Text respostaA;
    public Text respostaB;
    public Text respostaC;
    public Text respostaD;
    public Text infoRespostas;

    public string[] perguntas;
    public string[] alternativaA;
    public string[] alternativaB;
    public string[] alternativaC;
    public string[] alternativaD;
    public string[] 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 = Random.Range(0, perguntas.Length); // isto pega o max de perguntas possíveis
        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;
            }


        }
        else if (alternativa == "B")
        {
            if (alternativaB[idPergunta] == corretas[idPergunta])
            {

                acertos += 1;
            }

        }

        else if (alternativa == "C")
        {
            if (alternativaC[idPergunta] == corretas[idPergunta])
            {

                acertos += 1;
            }

        }

        else if (alternativa == "D")
        {
            if (alternativaD[idPergunta] == corretas[idPergunta])
            {
                acertos += 1;
            }

        }

        proximaPergunta();

    }


    void proximaPergunta()
    {
        idPergunta += 1;

      

        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 = 10 * (acertos / questoes);
            notaFinal = Mathf.RoundToInt(media);

            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);


            Application.LoadLevel("notaFinal");
        }
    }



}

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 6:32 pm

Só que na próxima pergunta não fica aleatório...

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 6:43 pm

tenta deixar aquela parte e envia aqui o erro que da, e diz se é durante o jogo(quando da play na cena), ou se ele da o erro todo o tempo.
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1376
REPUTAÇÃO : 15
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 7:32 pm

@luiz12345 escreveu:tenta deixar aquela parte e envia aqui o erro que da, e diz se é durante o jogo(quando da play na cena), ou se ele da o erro todo o tempo.

Dá erro quando clico na pergunta (ele não vai pra proxima pergunta) e fala isso "IndexOutofRangeException: Array index is out of range". O erro diz que é no  if (Respondidas[idPergunta]);

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 8:06 pm

me disseram pra usar este código (abaixo), mas não sei onde colocar ele:

Código:
Debug.Log("The value is " + idPergunta.ToString());

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:35 pm

o numero de bools no inspector é o mesmo que o numero de perguntas possíveis?
quando você criou o Respondidas[] foi adicionado no inspector uma área de bool, porem você antes precisa selecionar a quantidade.

caso não queria fazer isto, tenta adicionar isto antes do if():
Respondidas = new bool[perguntas.Length];
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1376
REPUTAÇÃO : 15
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:39 pm

opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1376
REPUTAÇÃO : 15
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:39 pm

@luiz12345 escreveu:opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
Void Start* to meio enrolado ;-;
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1376
REPUTAÇÃO : 15
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 9:53 pm

@luiz12345 escreveu:
@luiz12345 escreveu:opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
Void Start* to meio enrolado ;-;

Agora mano, funcionou. Valeu rsrsrs
Ficou assim:

Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class responder : MonoBehaviour {

    private int idTema;

    public bool[] Respondidas;


    public Text pergunta;
    public Text respostaA;
    public Text respostaB;
    public Text respostaC;
    public Text respostaD;
    public Text infoRespostas;

    public string[] perguntas;
    public string[] alternativaA;
    public string[] alternativaB;
    public string[] alternativaC;
    public string[] alternativaD;
    public string[] 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 = Random.Range(0, perguntas.Length); // isto pega o max de perguntas possíveis
        questoes = perguntas.Length;
        Respondidas = new bool[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;
            }


        }
        else if (alternativa == "B")
        {
            if (alternativaB[idPergunta] == corretas[idPergunta])
            {

                acertos += 1;
            }

        }

        else if (alternativa == "C")
        {
            if (alternativaC[idPergunta] == corretas[idPergunta])
            {

                acertos += 1;
            }

        }

        else if (alternativa == "D")
        {
            if (alternativaD[idPergunta] == corretas[idPergunta])
            {
                acertos += 1;
            }

        }

        proximaPergunta();

    }


    void proximaPergunta()
    {
        idPergunta += 1;
        Debug.Log("The value is " + idPergunta.ToString());

        if (Respondidas[idPergunta])
        {
            proximaPergunta();
            return; // para retornar a função
        }

        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 = 10 * (acertos / questoes);
            notaFinal = Mathf.RoundToInt(media);

            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);


            Application.LoadLevel("notaFinal");
        }
    }



}

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 11:26 pm

Porém testando aqui deu erro de novo. Eu respondo algumas perguntas e depois da o mesmo "IndexOutofRangeException: Array index is out of range". O erro diz que é no  if (Respondidas[idPergunta]);

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Ter Mar 19, 2019 1:14 am

tente substituir o:
Respondidas = new bool[perguntas.Length];

Por:

Respondidas = new bool[perguntas.Length + 1];


isso buga porque em certas parte ele conta o zero, em outras não.
se der mais erros avise
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1376
REPUTAÇÃO : 15
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 10:56 am

@luiz12345 escreveu:tente substituir o:
Respondidas = new bool[perguntas.Length];

Por:

Respondidas = new bool[perguntas.Length + 1];


isso buga porque em certas parte ele conta o zero, em outras não.
se der mais erros avise

Isso fez com que ele respondesse 1 ou 2 perguntas e depois finalizasse o questionário, sendo que são 10 perguntas.

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 11:12 am

Tentei postar uma print, mas o fórum não permite. Então vou tentar explicar...
Quando eu clicava na pergunta aparecia isto "The value is 8 UnityEngine.Debug:Log(Object)responder:proximaPergunta()"; quando chegava no "The value is 9", ele dava erro "IndexOutofRangeException: Array index is out of range".


Então eu removi o  "Debug.Log("The value is " + idPergunta.ToString());" e funcionou normalmente. Porém, quando chegava na ultima pergunta ele não ia para a nota final, ele dava de novo o erro "IndexOutofRangeException: Array index is out of range".

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 11:14 am

Ele nem começa do começo. Tem horas que ele já vai pra ultima pergunta (são 10 perguntas)...

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Ter Mar 19, 2019 12:34 pm

se for um sistema aleatório então ele pode tanto pegar a primeira, como a quinta, como a ultima pergunta, pois é aleatório, porem se for um sistema onde a primeira e a ultima não são aleatória ai já precisa de mais programação.
Quanto ao erro, eu não entendi muito bem, oque você poderia fazer é criar um outro tópico informando sobre este erro para que mais pessoas possam ajuda-lo.
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1376
REPUTAÇÃO : 15
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 1:50 pm

@luiz12345 escreveu:se for um sistema aleatório então ele pode tanto pegar a primeira, como a quinta, como a ultima pergunta, pois é aleatório, porem se for um sistema onde a primeira e a ultima não são aleatória ai já precisa de mais programação.
Quanto ao erro, eu não entendi muito bem, oque você poderia fazer é criar um outro tópico informando sobre este erro para que mais pessoas possam ajuda-lo.

Se quiser te mando o jogo pra você ver e tentar fazer ficar aleatório.

Akuma97
Membro
Membro

PONTOS : 228
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum