/** * 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]; }
// 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); } } }
public void addLastAttempt(DDADataManager.Attempt attempt) { DdaModel.addLastAttempt(attempt); }