Esempio n. 1
0
    public void AtualizarRankMinijogo(TarefaAprendizado tarefa)
    {
        GerenciadorTarefas.Instance.Log("\tAtualizando Rank de Minijogos...");
        //REGRA DDA #3: Ordenar os Tipos de Minijogos de acordo com o Tempo de Latência associado a ele.
        for (int i = 0; i < minijogos.Length; i++)
        {
            if(tarefa.tipoMinijogo == minijogos[i].tipo)
            {
                minijogos[i].rank += (int)Mathf.Ceil(tarefa.TempoLatencia);
                break;
            }
        }

        tarefa.tipoMinijogo = GetBestMinijogo();
    }
Esempio n. 2
0
    public void AtualizaConhecimentoPalavra(TarefaAprendizado tarefa)
    {
        lastTarefaAprendizado = tarefa;

        CalculaDificuldades();

        GerenciadorTarefas.Instance.Log("\tAtualizando conhecimento da palavra modelo");
        //REGRA DDA #4: Atualizar o Conhecimento da Palavra analisando os 2
        //últimos acertos consecutivos de tarefas contendo o mesmo Modelo de Palavra.
        float[] dificuldades = GerenciadorTarefas.Instance.
            Data.GetDificuldadePalavrasConsecultivas(lastTarefaAprendizado.modelo.nome);
        if(dificuldades.Length < 2)
        {
            GerenciadorTarefas.Instance.Log("\t\tNao foram realizados tarefas suficientes para analise do conhecimento dessa palavra");
            return;
        }

        int maxDificuldadeIndex = 0;
        float media = 0;
        for(int i=1; i < dificuldades.Length; i++)
        {
            media += dificuldades[i];
            if(dificuldades[i] > dificuldades[maxDificuldadeIndex])
            {
                maxDificuldadeIndex = i;
            }
        }
        GerenciadorTarefas.Instance.Log(string.Format(
            "\t\tConhecimento da Palavra: {0}, Maior Conhecimento: {1}, Media dos conhecimentos: {2}",
            lastTarefaAprendizado.modelo.conhecimentoGeral, dificuldades[maxDificuldadeIndex], media));
        //Se o Conhecimento atual da Palavra for menor que a tarefa onde o valor da
        //Dificuldade Dinâmica seja maior, o Conhecimento será a média dos valores de Dificuldade Dinâmica.
        if(lastTarefaAprendizado.modelo.conhecimentoGeral < dificuldades[maxDificuldadeIndex])
        {
            lastTarefaAprendizado.modelo.conhecimentoGeral = media;
            GerenciadorTarefas.Instance.Log("\t\tConhecimento atualizado para " +
                lastTarefaAprendizado.modelo.conhecimentoGeral);
        }
    }
Esempio n. 3
0
    public void ShowModel(TarefaAprendizado tarefa)
    {
        switch (tarefa.tipoTarefa.GetFormaExibicaoModelo())
        {
            case (char)DefinicaoTipoTarefa.SOM:
                audioSource.clip = GerenciadorTarefas.Instance.Data.GetAudioEnsino(tarefa.modelo.id);
                PlayAudioModel();
                SetBallonenable(true, false, false, true);
                break;

            case (char)DefinicaoTipoTarefa.IMAGEM:
                SetBallonenable(true);
                imageModel.sprite = GerenciadorTarefas.Instance.Data.GetImageEnsino(tarefa.modelo.id);
                break;

            case (char)DefinicaoTipoTarefa.PALAVRA:
                SetBallonenable(true);
                textModel.text = tarefa.modelo.nome;
                break;

            default:
                break;
        }
    }
Esempio n. 4
0
 public void AttachTarefa(TarefaAprendizado tarefa)
 {
     this.tarefa = tarefa;
 }
Esempio n. 5
0
    public void Run(TarefaAprendizado tarefaAprendizado)
    {
        GerenciadorTarefas.Instance.Log("\tAgente DDA sendo executado...");
        lastTarefaAprendizado = tarefaAprendizado;

        if (IsPossivelRegressao())
        {
            GerenciadorTarefas.Instance.Log("\tRegressao sendo feita...");
            SaveTarefaOnBuffer();

            CreateTarefaDDA();
            //REGRA DDA #2: Monitorar quantas regressões foram feita na tarefa tendo como base a primeira.
            lastTarefaAprendizado.numRegressoes++;
            GerenciadorTarefas.Instance.Log("\tRegressao realizada.");
        }
        else
        {
            GerenciadorTarefas.Instance.Log("\tRegressao nao eh possivel.");

            if (IsTarefaAprendizadoPendente())
            {
                lastTarefaAprendizado = GetTarefaAprendizadoPendente();
            }
            else if(lastTarefaAprendizado.comparacoes.Length > 2)
            {
                ReduzirComparacoes();
            }
            else
            {
                lastTarefaAprendizado = GerenciadorTarefas.Instance.NextTarefaAprendizado();
            }
        }
    }