Exemplo n.º 1
0
 /**
  * Add new attempt to data and set is as last attempt
  */
 public void addLastAttempt(DDADataManager.Attempt attempt)
 {
     DataManager.addAttempt(PlayerId, ChallengeId, attempt);
     LRAccuracyUpToDate = false;
     PMWonLastTime      = attempt.Result > 0;
     PMLastTheta        = attempt.Thetas[0];
 }
Exemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        if (waitingForNewLevel)
        {
            return;
        }

        bool end     = false;
        bool alldead = false;

        if (player == null || !player.gameObject.activeSelf)
        {
            end = true;
        }
        else
        {
            alldead = true;
            for (int i = 0; i < ennemies.Length; i++)
            {
                if (ennemies[i].gameObject.activeSelf)
                {
                    alldead = false;
                }
            }
            if (alldead)
            {
                end = true;
            }
        }



        /**
         * Fin de niveau !!! on log tout ici
         * */
        if (end)
        {
            if (alldead && player.gameObject.activeSelf)
            {
                win = true;
            }
            if (win)
            {
                TWin.enabled = true;
            }
            else
            {
                TFail.enabled = true;
            }

            destroyLevel();



            if (!logged)
            {
                ask = true;
                if (numLevel >= NbLevelTuto - 1 && !explained)
                {
                    StartCoroutine("explication");
                }
                if (numLevel > NbLevelTuto && numLevel < NbLevelRandom)
                {
                    DDAModelManager.setDDAAlgorithm(DDAModel.DDAAlgorithm.DDA_RANDOM_LOGREG);
                }


                if (win)
                {
                    Score++;
                }
                double[] betas = new double[2];
                if (lastDiffParams.Betas != null && lastDiffParams.Betas.Length > 0)
                {
                    betas = lastDiffParams.Betas;
                }
                if (DDAModelManager.getDDAAlgorithm() == DDAModel.DDAAlgorithm.DDA_LOGREG || DDAModelManager.getDDAAlgorithm() == DDAModel.DDAAlgorithm.DDA_PMDELTA || (DDAModelManager.getDDAAlgorithm() == DDAModel.DDAAlgorithm.DDA_RANDOM_LOGREG && firstLevel))
                {
                    this.log(DDAModelManager.getPlayerId(),
                             betas[0],
                             betas[1],
                             lastDiffParams.LRAccuracy,
                             lastDiffParams.LogRegError.ToString(),
                             lastDiffParams.AlgorithmActuallyUsed.ToString(),
                             (float)lastDiffParams.TargetDiff,
                             (float)lastDiffParams.Theta,
                             win,
                             answer,
                             DDAModelManager.getPlayerAge(),
                             DDAModelManager.getPlayerGender());
                }

                logged = true;



                double[] vars = new double[1];
                vars[0] = nextDifficulty;
                DDADataManager.Attempt lastAttempt = new DDADataManager.Attempt();
                if (win)
                {
                    lastAttempt.Result = 1;
                }
                else
                {
                    lastAttempt.Result = 0;
                }
                lastAttempt.Thetas = vars;
                DDAModelManager.addLastAttempt(lastAttempt);
            }


            if (DDAModelManager.getDDAAlgorithm() == DDAModel.DDAAlgorithm.DDA_PMDELTA && !explaining)
            {
                lastDiffParams = DDAModelManager.computeNewDiffParams();
                nextDifficulty = (float)lastDiffParams.Theta;
                numLevel++;
                StartCoroutine("nextLevel");
            }
            if (DDAModelManager.getDDAAlgorithm() == DDAModel.DDAAlgorithm.DDA_RANDOM_LOGREG && !explaining)
            {
                if (!firstLevel)
                {
                    if (ask)
                    {
                        ask = false;
                        StartCoroutine("deuxSecTimer");
                    }
                    if (questionAnswered)
                    {
                        double[] betas = new double[2];
                        if (lastDiffParams.Betas != null && lastDiffParams.Betas.Length > 0)
                        {
                            betas = lastDiffParams.Betas;
                        }
                        this.log(DDAModelManager.getPlayerId(),
                                 betas[0],
                                 betas[1],
                                 lastDiffParams.LRAccuracy,
                                 lastDiffParams.LogRegError.ToString(),
                                 lastDiffParams.AlgorithmActuallyUsed.ToString(),
                                 (float)lastDiffParams.TargetDiff,
                                 (float)lastDiffParams.Theta,
                                 win,
                                 answer,
                                 DDAModelManager.getPlayerAge(),
                                 DDAModelManager.getPlayerGender());

                        lastDiffParams = DDAModelManager.computeNewDiffParams();
                        nextDifficulty = (float)lastDiffParams.Theta;
                        numLevel++;
                        if (numLevel > NbLevelRandom)
                        {
                            if (!expLogReg)
                            {
                                StartCoroutine("explicationLogReg");
                            }
                            DDAModelManager.setDDAAlgorithm(DDAModel.DDAAlgorithm.DDA_LOGREG);
                            answer = -10;
                        }
                        else
                        {
                            StartCoroutine("nextLevel");
                        }
                    }
                }
                else
                {
                    firstLevel     = false;
                    lastDiffParams = DDAModelManager.computeNewDiffParams();
                    nextDifficulty = (float)lastDiffParams.Theta;
                    numLevel++;
                }
            }
            if (DDAModelManager.getDDAAlgorithm() == DDAModel.DDAAlgorithm.DDA_LOGREG && !explaining)
            {
                lastDiffParams = DDAModelManager.computeNewDiffParams(DifficultyCurve.getDifficulty(numLevelLogReg));//0.2 0.5 0.7
                nextDifficulty = (float)lastDiffParams.Theta;;
                numLevel++;
                numLevelLogReg++;
                StartCoroutine("nextLevel");
            }

            if (numLevel >= 100)
            {
                SceneManager.LoadScene(2);
            }
        }
    }
Exemplo n.º 3
0
 public void addLastAttempt(DDADataManager.Attempt attempt)
 {
     DdaModel.addLastAttempt(attempt);
 }