public void ChangeProgress(float NewProgress)
 {
     //Setting the stars active based on the amount of progress.
     transform.localScale = new Vector2(NewProgress, transform.localScale.y);
     progress             = NewProgress;
     if (progress > (1f / 3f))
     {
         Star1.SetActive(true);
     }
     else
     {
         Star1.SetActive(false);
     }
     if (progress > (2f / 3f))
     {
         Star2.SetActive(true);
     }
     else
     {
         Star2.SetActive(false);
     }
     if (progress == 1f)
     {
         Star3.SetActive(true);
     }
     else
     {
         Star3.SetActive(false);
     }
 }
Exemplo n.º 2
0
    public void ChangeStars()
    {
        //Get the amount of stars of the current level and display them
        starsToDisplay = currentLevel.currentStars;

        switch (starsToDisplay)
        {
        case 0:
            Star0.SetActive(true);
            break;

        case 1:
            Star0.SetActive(false);
            Star1.SetActive(true);
            break;

        case 2:
            Star1.SetActive(false);
            Star2.SetActive(true);
            break;

        case 3:
            Star2.SetActive(false);
            Star3.SetActive(true);
            break;
        }
    }
Exemplo n.º 3
0
        public static void Main(string[] args)
        {
            int star1 = Star1.GetMultiplyExpensesEqualsTo2020();
            int star2 = Star2.GetMultiplyExpensesEqualsTo2020();

            Console.WriteLine($"Star 1: { star1 }");
            Console.WriteLine($"Star 2: { star2 }");
            Console.ReadKey();
        }
Exemplo n.º 4
0
    // Use this for initialization
    void Start()         //Mise en Place de la Scene.
    {
        End   = GameObject.Find("End");
        Star1 = GameObject.Find("1 Star");
        Star2 = GameObject.Find("2 Star");
        Star3 = GameObject.Find("3 Star");
        Star1.SetActive(false);
        Star2.SetActive(false);
        Star3.SetActive(false);
        Fermeture = GameObject.Find("Fermeture");
        Bienjoue  = GameObject.Find("BienJoué");
        genial    = GameObject.Find("Génial");
        excellent = GameObject.Find("Excellent");
        score     = GameObject.Find("Score");
        Fermeture.SetActive(false);
        Bienjoue.SetActive(false);
        genial.SetActive(false);
        excellent.SetActive(false);
        next = GameObject.Find("Next Level").GetComponent <Button>();

        score.GetComponent <Text>().text = "Score: " + GameManager.Score.ToString();

        switch (GameManager.Stars)
        {
        case 0:
            GameObject.Find("Main Camera").GetComponent <AudioSource>().clip = bad;
            GameObject.Find("Main Camera").GetComponent <AudioSource>().Play();
            Fermeture.SetActive(true);
            next.interactable = false;
            break;

        case 1:
            GameObject.Find("Main Camera").GetComponent <AudioSource>().clip = applause;
            GameObject.Find("Main Camera").GetComponent <AudioSource>().Play();
            Bienjoue.SetActive(true);
            Star1.SetActive(true);
            break;

        case 2:
            GameObject.Find("Main Camera").GetComponent <AudioSource>().clip = applause;
            GameObject.Find("Main Camera").GetComponent <AudioSource>().Play();
            genial.SetActive(true);
            Star1.SetActive(true);
            Star2.SetActive(true);
            break;

        case 3:
            GameObject.Find("Main Camera").GetComponent <AudioSource>().clip = applause;
            GameObject.Find("Main Camera").GetComponent <AudioSource>().Play();
            excellent.SetActive(true);
            Star1.SetActive(true);
            GameObject.Find("Canvas").GetComponent <AudioSource>().PlayOneShot(good);
            Star2.SetActive(true);
            Star3.SetActive(true);
            break;
        }
    }
 void Start()
 {
     transform = GetComponent <RectTransform> ();
     width     = transform.rect.width;
     frame     = GameObject.Find("Frame").GetComponent <RectTransform> ();
     Star1     = GameObject.Find("Star1");
     Star1.SetActive(false);
     Star2 = GameObject.Find("Star2");
     Star2.SetActive(false);
     Star3 = GameObject.Find("Star3");
     Star3.SetActive(false);
 }
Exemplo n.º 6
0
    private void Start()
    {
        if (ReciverManager.Instance.StarRecived == 2)
        {
            Star3.GetComponentInChildren <Image>().sprite = LostStarSprite;
        }

        if (ReciverManager.Instance.StarRecived == 1)
        {
            Star2.GetComponentInChildren <Image>().sprite = LostStarSprite;
            Star3.GetComponentInChildren <Image>().sprite = LostStarSprite;
        }
        MessageText.text = ReciverManager.Instance.Msg.GetMessage();
    }
Exemplo n.º 7
0
    public void OnContinueClicked()
    {
        HidePopup();
        StartCoroutine(DeActivate(1f, () => { if (ContinueClicked != null)
                                              {
                                                  ContinueClicked();
                                              }
                                  }));
        AudioManager.Instance.PlaySound(AudioManager.SFX.CLICK);

        StarsPanel.SetActive(false);
        Star1.SetActive(false);
        Star2.SetActive(false);
        Star3.SetActive(false);
    }
Exemplo n.º 8
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            base.Draw(spriteBatch);

            AlignText(WinningText, Alignment.Center, 25);
            AlignText(ScoreText, Alignment.Center, 175);

            ScoreText.Text = DisplayedScore.ToString("N0");

            WinningText.Draw(spriteBatch);
            ScoreText.Draw(spriteBatch);

            RestartButton.Draw(spriteBatch);
            NextButton.Draw(spriteBatch);

            Star1.Draw(spriteBatch);
            Star2.Draw(spriteBatch);
            Star3.Draw(spriteBatch);
        }
Exemplo n.º 9
0
 void OutputStar()
 {
     if (PlayerPrefs.GetInt("Score") < 6)
     {
     }
     if (PlayerPrefs.GetInt("Score") > 6 && PlayerPrefs.GetInt("Score") < 12)
     {
         Star1.SetActive(true);
     }
     if (PlayerPrefs.GetInt("Score") > 12 && PlayerPrefs.GetInt("Score") < 20)
     {
         Star1.SetActive(true);
         Star2.SetActive(true);
     }
     if (PlayerPrefs.GetInt("Score") > 20)
     {
         Star1.SetActive(true);
         Star2.SetActive(true);
         Star3.SetActive(true);
     }
 }
Exemplo n.º 10
0
    IEnumerator ShowStars(int starsCount)
    {
        yield return(new WaitForSeconds(1f));

        if (starsCount >= 1)
        {
            Star1.SetActive(true);
            AudioManager.Instance.PlaySound(AudioManager.SFX.STAR);
            yield return(new WaitForSeconds(0.5f));
        }

        if (starsCount >= 2)
        {
            Star2.SetActive(true);
            AudioManager.Instance.PlaySound(AudioManager.SFX.STAR);
            yield return(new WaitForSeconds(0.5f));
        }

        if (starsCount >= 3)
        {
            Star3.SetActive(true);
            AudioManager.Instance.PlaySound(AudioManager.SFX.STAR);
        }
    }
Exemplo n.º 11
0
 public void Configure(int StarAchieved)
 {
     Star1.SetActive(StarAchieved >= 1);
     Star2.SetActive(StarAchieved >= 2);
     Star3.SetActive(StarAchieved >= 3);
 }
Exemplo n.º 12
0
        public static MulticlassSupportVectorMachine <Gaussian> Train(Dictionary <TagType, List <List <double[]> > > allsignalsList)
        {
            int seed = DateTime.Now.Second;

            _xrand = new Random(seed);
            Console.WriteLine("a entrenar se ha dicho");
            List <double[]> inputsList  = new List <double[]>();
            List <int>      outputsList = new List <int>();

            foreach (var tag in allsignalsList.Keys)
            {
                Console.WriteLine($"empezando pro el tag {tag}");
                int i = 0;
                foreach (var signalList in allsignalsList[tag])
                {
                    double[] featureVector = PreProcess(signalList,
                                                        0.99,
                                                        EEGEmoProc2ChSettings.Instance.m.Value,
                                                        EEGEmoProc2ChSettings.Instance.r.Value,
                                                        EEGEmoProc2ChSettings.Instance.N.Value,
                                                        1,
                                                        0).ToArray();

                    inputsList.Add(featureVector);
                    outputsList.Add(tag.GetHashCode());
                    i = i + 1;
                    Console.WriteLine($"ya van {i} listas del tag {tag}");
                }
            }
            Console.WriteLine("procesado todo, ahora a buscar");
            // Instantiate a new Grid Search algorithm for Kernel Support Vector Machines
            int    iterationsMax = 7;
            double minError      = 0.1;
            int    maxPopulation = 3;
            MulticlassSupportVectorMachine <Gaussian> svm = null;                                    // Training(inputsList, outputsList).BestModel;
            Tuple <MulticlassSupportVectorMachine <Gaussian>, double, double, double> result = null; // Training(inputsList, outputsList);
            //svm = result.BestModel;
            string internalDirectory = _dataAccessFacade.GetGeneralSettings().GetModalDirectory("Emotion");
            var    file_all_models   = File.AppendText(Path.Combine(internalDirectory, "all_models.txt"));
            var    file_all_stars    = File.AppendText(Path.Combine(internalDirectory, "all_stars_all_its.txt"));

            result = Training(inputsList, outputsList);
            Star2[] stars = new Star2[maxPopulation];
            Star2   best  = new Star2()
            {
                svm        = result.Item1.DeepClone(),
                error      = result.Item2,
                Complexity = result.Item3,
                Gamma      = result.Item4,
                inputsList = inputsList
            };

            //inicialization
            for (int iStar = 0; iStar < maxPopulation; iStar++)
            {
                stars[iStar] = new Star2()
                {
                    svm        = result.Item1.DeepClone(),
                    error      = result.Item2,
                    Complexity = result.Item3,
                    Gamma      = result.Item4,
                    inputsList = inputsList
                };
                try
                {
                    for (int iInput = 0; iInput < stars[iStar].inputsList.Count; iInput++)
                    {
                        for (int jinput = 0; jinput < stars[iStar].inputsList[iInput].Length; jinput++)
                        {
                            stars[iStar].inputsList[iInput][jinput] = stars[iStar].inputsList[iInput][jinput]
                                                                      + ((_xrand.NextDouble() * -1) * result.Item2 * stars[iStar].inputsList[iInput][jinput]);
                        }
                    }
                    var res = Training(stars[iStar].inputsList, outputsList);
                    stars[iStar].svm        = res.Item1;
                    stars[iStar].error      = res.Item2;
                    stars[iStar].Complexity = res.Item3;
                    stars[iStar].Gamma      = res.Item4;
                }catch (Exception ex)
                {
                    Console.WriteLine("Error al inicializar estrella " + iStar + ": " + ex.Message);
                }
            }
            foreach (var star in stars)
            {
                if (star.error < best.error)
                {
                    best = star;
                }
            }
            //cycle
            for (int i = 0; i < iterationsMax; i++)
            {
                file_all_models.WriteLine($"Model: {i}, Seed: {seed}, Error: {best.error}, Gamma: {best.Gamma}, C: {best.Complexity}\n inputs: {best.inputsList.ToJsonString(true)}");
                file_all_models.Flush();

                if (best.error < minError)
                {
                    svm = best.svm;
                    WriteFiles(best.error, best.Gamma, best.Complexity, best.inputsList, outputsList, best.svm);
                    return(svm);
                }
                //each star
                for (int iStar = 0; iStar < stars.Length; iStar++)
                {
                    Star2 prevStar = stars[iStar];
                    try
                    {
                        for (int iInput = 0; iInput < stars[iStar].inputsList.Count; iInput++)
                        {
                            for (int jinput = 0; jinput < stars[iStar].inputsList[iInput].Length; jinput++)
                            {
                                stars[iStar].inputsList[iInput][jinput] = stars[iStar].inputsList[iInput][jinput]
                                                                          + _xrand.NextDouble()
                                                                          * (best.inputsList[iInput][jinput] - stars[iStar].inputsList[iInput][jinput]);
                            }
                        }
                        var res = Training(stars[iStar].inputsList, outputsList);
                        stars[iStar].svm        = res.Item1;
                        stars[iStar].error      = res.Item2;
                        stars[iStar].Complexity = res.Item3;
                        stars[iStar].Gamma      = res.Item4;
                        file_all_stars.WriteLine($"Model: {i}, Seed: {seed}, Error: {stars[iStar].error}, Gamma: {stars[iStar].Gamma}, C: {stars[iStar].Complexity}\n inputs: {stars[iStar].inputsList.ToJsonString(true)}");
                        file_all_stars.Flush();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error en it " + i + " al cambiar estrella " + iStar + ": " + ex.Message);
                        stars[iStar] = prevStar;
                    }
                }
                foreach (var star in stars)
                {
                    if (star.error < best.error)
                    {
                        best = star;
                    }
                }
                svm = best.svm;
            }
            file_all_models.Close();
            file_all_stars.Close();
            WriteFiles(result.Item2, result.Item3, result.Item4, inputsList, outputsList, result.Item1);
            return(svm);
        }
Exemplo n.º 13
0
    void Update()
    {
        if (showScoreCircles && CameraManager.cameraAdjusted)
        {
            if (ang < maxAng)
            {
                ang += Time.deltaTime * 300;
            }
            else
            {
                ang = maxAng;
            }
            levelSquare.transform.localRotation = Quaternion.AngleAxis(ang, Vector3.back);

            UpdatePlatformObjectProperties(currentScoreCircle, currentScoreCirclePos, 1f, true, true);
            UpdatePlatformObjectProperties(prevScoreCircleFar, prevScoreCircleFarPos, circleAlphaFar, true, true);
            UpdatePlatformObjectProperties(prevScoreCircleNear, prevScoreCircleNearPos, circleAlphaNear, true, true);
            UpdatePlatformObjectProperties(nextScoreCircleNear, nextScoreCircleNearPos, circleAlphaNear, true, true);
            UpdatePlatformObjectProperties(nextScoreCircleFar, nextScoreCircleFarPos, circleAlphaFar, true, true);

            UpdatePlatformObjectProperties(hintButton, hintButtonPos, 1f, true, false);

            UpdatePlatformObjectProperties(timerCircle3Star, timerCircle3Pos, 1f, false, false);
            UpdatePlatformObjectProperties(timerCircle2Star, timerCircle2Pos, 1f, false, false);
            UpdatePlatformObjectProperties(timerCircle1Star, timerCircle1Pos, 1f, false, false);

            if (prevScoreCircleFar.transform.localPosition == prevScoreCircleFarPos)
            {
                showScoreCircles = false;
            }
        }

        if (WaitForHintFlag && !waitingFlag)
        {
            if (score == 0 || score == 1)
            {
                StartCoroutine(WaitForHint(2.0f));
            }
            else
            {
                StartCoroutine(WaitForHint(1.0f));
            }
        }

        if (ShowHintScreenFlag)
        {
            hintScreen.transform.localScale = Vector3.Lerp(hintScreen.transform.localScale, hintScreenSize, circleSpeed * Time.deltaTime);
        }

        if (HideHintScreenFlag)
        {
            hintScreen.transform.localScale = Vector3.Lerp(hintScreen.transform.localScale, hintScreenCollapseSize, circleSpeed * Time.deltaTime);
        }



        if (StartTimerFlag && !PauseTimerFlag)
        {
            if (!timerSlider.activeSelf)
            {
                timerSlider.SetActive(true);

                homeButton.SetActive(false);
                pauseButton.SetActive(true);
            }

            float currTime = TimeManager.GetCurrentTime() - pauseDuration;

            if (currTime < TimeManager.time3star)
            {
                timerStartCounter3 += Time.deltaTime / TimeManager.time3star;
                timerSlider.transform.localPosition = Vector3.Lerp(timerSliderInitPos, timerCircle3Star.transform.localPosition, timerStartCounter3);
                timerSlider.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColour3Star"];
            }
            else if (currTime < TimeManager.time2star)
            {
                timerStartCounter2 += Time.deltaTime / (TimeManager.time2star - TimeManager.time3star);
                timerSlider.transform.localPosition = Vector3.Lerp(timerCircle3Star.transform.localPosition, timerCircle2Star.transform.localPosition, timerStartCounter2);
                timerSlider.GetComponent <SpriteRenderer> ().color      = colourDict ["TimerColour2Star"];
                timerCircle3Star.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColourOff"];
                timerCircle3Star.GetComponentInChildren <Text> ().text  = "";
            }
            else if (currTime < TimeManager.time1star)
            {
                timerStartCounter1 += Time.deltaTime / (TimeManager.time1star - TimeManager.time2star);
                timerSlider.transform.localPosition = Vector3.Lerp(timerCircle2Star.transform.localPosition, timerCircle1Star.transform.localPosition, timerStartCounter1);
                timerSlider.GetComponent <SpriteRenderer> ().color      = colourDict ["TimerColour1Star"];
                timerCircle2Star.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColourOff"];
                timerCircle2Star.GetComponentInChildren <Text> ().text  = "";
                timerCircle3Star.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColourOff"];
                timerCircle3Star.GetComponentInChildren <Text> ().text  = "";
            }
            else
            {
                timerCircle2Star.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColourOff"];
                timerCircle2Star.GetComponentInChildren <Text> ().text  = "";
                timerCircle3Star.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColourOff"];
                timerCircle3Star.GetComponentInChildren <Text> ().text  = "";
            }
        }

        if (ScoreCompleteFlag)
        {
            UpdatePlatformObjectProperties(prevScoreCircleFar, currentScoreCirclePos, 0f, true, true);
            UpdatePlatformObjectProperties(prevScoreCircleNear, currentScoreCirclePos, 0f, true, true);
            UpdatePlatformObjectProperties(nextScoreCircleNear, currentScoreCirclePos, 0f, true, true);
            UpdatePlatformObjectProperties(nextScoreCircleFar, currentScoreCirclePos, 0f, true, true);

            Color newColor = Color.Lerp(currentScoreCircle.GetComponent <SpriteRenderer> ().color, LevelColour, alphaSpeed * Time.deltaTime);
            currentScoreCircle.GetComponent <SpriteRenderer> ().color = newColor;
            currentScoreCircle.GetComponentInChildren <Text> ().color = newColor;

            if (prevScoreCircleFar.transform.localPosition == currentScoreCircle.transform.localPosition)
            {
                print("SCORE COMPLETED.....");

                //Flip tiles to show menu items
                flipTilesFlag     = true;
                ScoreCompleteFlag = false;

                HintEnabled = false;

                CameraManager.ZoomInPlatform();

                homeButton.SetActive(true);
                pauseButton.SetActive(false);
            }
        }

        //Flip tiles to show Menu
        if (flipTilesFlag)
        {
            FlipTilesAndShowMenu();
        }

        //Show Menu Screen
        if (ShowStarsFlag)
        {
            if (!TimeTakenShown)
            {
                TimeTakenObj = Instantiate(TimeTakenText, transform);
                TimeTakenObj.transform.position = Star2.transform.position + new Vector3(0, 2, 0);
                TimeTakenObj.GetComponentInChildren <Text> ().text = "Completed in " + TimeManager.GetTimeTaken() + "s.";
                TimeTakenShown = true;
            }

            Quaternion _targetRotation = Quaternion.Euler(new Vector3(0, 0, 180));

            if (myStar >= 1 && !Star1RotCompleteFlag)
            {
                Star1.GetComponent <SpriteRenderer>().color = Color.Lerp(Star1.GetComponent <SpriteRenderer> ().color, colourDict ["StarColour"], alphaSpeed * Time.deltaTime);

                Star1.transform.localRotation = Quaternion.Lerp(Star1.transform.localRotation, _targetRotation, 10 * Time.deltaTime);
                Star1.transform.localScale    = Vector3.Lerp(Star1.transform.localScale, new Vector3(0.6f, 0.6f, 0.6f), 10 * Time.deltaTime);
                if (Star1.transform.localRotation == _targetRotation)
                {
                    Star1RotCompleteFlag = true;
                }
            }
            if (myStar >= 2 && !Star2RotCompleteFlag && Star1RotCompleteFlag)
            {
                Star2.GetComponent <SpriteRenderer>().color = Color.Lerp(Star2.GetComponent <SpriteRenderer> ().color, colourDict ["StarColour"], alphaSpeed * Time.deltaTime);

                Star2.transform.localRotation = Quaternion.Lerp(Star2.transform.localRotation, _targetRotation, 10 * Time.deltaTime);
                Star2.transform.localScale    = Vector3.Lerp(Star2.transform.localScale, new Vector3(0.6f, 0.6f, 0.6f), 10 * Time.deltaTime);
                if (Star2.transform.localRotation == _targetRotation)
                {
                    Star2RotCompleteFlag = true;
                }
            }
            if (myStar >= 3 && !Star3RotCompleteFlag && Star2RotCompleteFlag)
            {
                Star3.GetComponent <SpriteRenderer>().color = Color.Lerp(Star3.GetComponent <SpriteRenderer> ().color, colourDict ["StarColour"], alphaSpeed * Time.deltaTime);

                _targetRotation = Quaternion.Euler(new Vector3(0, 0, 180));
                Star3.transform.localRotation = Quaternion.Lerp(Star3.transform.localRotation, _targetRotation, 10 * Time.deltaTime);
                Star3.transform.localScale    = Vector3.Lerp(Star3.transform.localScale, new Vector3(0.6f, 0.6f, 0.6f), 10 * Time.deltaTime);
                if (Star3.transform.localRotation == _targetRotation)
                {
                    Star3RotCompleteFlag = true;
                }
            }

            if ((myStar == 1 && Star1RotCompleteFlag) || (myStar == 2 && Star2RotCompleteFlag) || (myStar == 3 && Star3RotCompleteFlag))
            {
                ShowStarsFlag = false;
            }
        }

        //Retry enabled
        if (RetryPlatformFlag)
        {
            UpdatePlatformObjectProperties(prevScoreCircleFar, prevScoreCircleFarPos, circleAlphaFar, true, true);
            UpdatePlatformObjectProperties(prevScoreCircleNear, prevScoreCircleNearPos, circleAlphaNear, true, true);
            UpdatePlatformObjectProperties(nextScoreCircleNear, nextScoreCircleNearPos, circleAlphaNear, true, true);
            UpdatePlatformObjectProperties(nextScoreCircleFar, nextScoreCircleFarPos, circleAlphaFar, true, true);

            timerCircle3Star.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColour3Star"];
            timerCircle2Star.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColour2Star"];
            timerCircle1Star.GetComponent <SpriteRenderer> ().color = colourDict ["TimerColour1Star"];

            timerCircle3Star.GetComponentInChildren <Text> ().text = transform.GetComponent <TimeManager> ().time3star.ToString() + " s";
            timerCircle2Star.GetComponentInChildren <Text> ().text = transform.GetComponent <TimeManager> ().time2star.ToString() + " s";
            timerCircle1Star.GetComponentInChildren <Text> ().text = transform.GetComponent <TimeManager> ().time1star.ToString() + " s";

            if (prevScoreCircleFar.transform.localPosition == prevScoreCircleFarPos)
            {
                RetryPlatformFlag = false;
            }
        }
    }
Exemplo n.º 14
0
    void OnCollisionEnter2D(Collision2D col) //col ==> trou ;;//gameobject --> object qui est en collision avec les trous, on attache ce script à grain et nn trou
    {
        if (gameObject.CompareTag("arrosoir") && col.gameObject.CompareTag("trou1") && PelleToTrou.pelle1Done == true && GrainToTrou.grain1Done == true)
        {
            myAnim = Instantiate(prefabAnim, col.transform.position, transform.rotation); // initiate dans la pos du trou
            Destroy(myAnim, 2.0f);
            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy
            if (col.gameObject.CompareTag("trou1"))
            {
                action3             = true;
                ScoreCounter.score += 2;
                InstantiatePlusTwoAnim();
            }
        }


        if (GrainLevel2.action2Tr3 == true && gameObject.CompareTag("arrosoir") && col.gameObject.CompareTag("trou3"))
        {
            myAnim = Instantiate(prefabAnim, col.transform.position, transform.rotation); // initiate dans la pos du trou
            Destroy(myAnim, 2.0f);
            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy

            if (col.gameObject.CompareTag("trou3"))
            {
                action3Tr3          = true;
                ScoreCounter.score += 2;
                InstantiatePlusTwoAnim();
                //on montre la 1ere etoile
                StarOne.showStarOne();
                star1L2 = true;
            }
        }



        if (GrainLevel2.action2Tr4 == true && gameObject.CompareTag("arrosoir") && col.gameObject.CompareTag("trou4"))
        {
            myAnim = Instantiate(prefabAnim, col.transform.position, transform.rotation); // initiate dans la pos du trou
            Destroy(myAnim, 2.0f);
            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy

            if (col.gameObject.CompareTag("trou4"))
            {
                action3Tr4          = true;
                ScoreCounter.score += 2;
                InstantiatePlusTwoAnim();
                Star2.showStar2();
                star2L2 = true;
            }
        }



        if (gameObject.CompareTag("arrosoir") && col.gameObject.CompareTag("trou5") && Trou4Level2.grainTrou5 == true)
        {
            myAnim = Instantiate(prefabAnim, col.transform.position, transform.rotation); // initiate dans la pos du trou
            Destroy(myAnim, 2.0f);
            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy


            if (col.gameObject.CompareTag("trou5"))
            {
                action3Tr5          = true;
                ScoreCounter.score += 2;
                InstantiatePlusTwoAnim();
                star3.showStar3();
                star3L2 = true;
            }
        }
    }
Exemplo n.º 15
0
        public MulticlassSupportVectorMachine <Gaussian> Train(Dictionary <TagType, List <List <double[]> > > allsignalsList)
        {
            int seed = DateTime.Now.Second + DateTime.Now.Millisecond + DateTime.Now.Minute;

            Console.WriteLine("semilla: " + seed);
            _xrand = new Random(seed);
            Console.WriteLine("a entrenar se ha dicho");
            List <double[]> inputsList  = new List <double[]>();
            List <int>      outputsList = new List <int>();

            _originputsList     = new List <double[]>();
            _originalInputsList = new List <Tuple <double[], int> >();
            foreach (var tag in allsignalsList.Keys)
            {
                Console.WriteLine("empezando a procesar el tag:" + tag);
                int i = 0;
                foreach (var signalList in allsignalsList[tag])
                {
                    double[] featureVector = PreProcess(signalList,
                                                        0.99,
                                                        EEGEmoProc2ChSettings.Instance.m.Value,
                                                        EEGEmoProc2ChSettings.Instance.r.Value,
                                                        EEGEmoProc2ChSettings.Instance.N.Value,
                                                        20,
                                                        0).ToArray();

                    inputsList.Add(featureVector.DeepClone());
                    _originputsList.Add(featureVector.DeepClone());
                    outputsList.Add(tag.DeepClone().GetHashCode());
                    _originalInputsList.Add(new Tuple <double[], int>(featureVector.DeepClone(), tag.DeepClone().GetHashCode()));
                    //Console.WriteLine(_originalInputsList[i].Item1+","+ _originalInputsList[i].Item2);
                    i = i + 1;
                }
            }
            Console.WriteLine("procesado todo, ahora a buscar");

            bool randomInitial = EEGEmoProc2ChSettings.Instance.RandomInitialFeatures.Value;

            if (randomInitial)
            {
                double minInput = double.PositiveInfinity;
                double maxInput = double.NegativeInfinity;
                for (int iInput = 0; iInput < inputsList.Count; iInput++)
                {
                    for (int jInput = 0; jInput < inputsList[iInput].Length; jInput++)
                    {
                        if (minInput > inputsList[iInput][jInput])
                        {
                            minInput = inputsList[iInput][jInput];
                        }
                        if (maxInput < inputsList[iInput][jInput])
                        {
                            maxInput = inputsList[iInput][jInput];
                        }
                    }
                }
                for (int iInput = 0; iInput < inputsList.Count; iInput++)
                {
                    for (int jInput = 0; jInput < inputsList[iInput].Length; jInput++)
                    {
                        inputsList[iInput][jInput] = _xrand.NextDouble() * (maxInput - minInput + 1) + minInput;
                    }
                }
            }
            bool onlyPaper = EEGEmoProc2ChSettings.Instance.OnlyPaper.Value;

            if (onlyPaper)
            {
                var res = TrainingPaper(inputsList, outputsList);
                WriteFiles(res.Item2, res.Item4, res.Item3, _originputsList, outputsList, res.Item1);
                return(res.Item1);
            }
            // Instantiate a new Grid Search algorithm for Kernel Support Vector Machines
            MulticlassSupportVectorMachine <Gaussian> svm = null;                             // Training(inputsList, outputsList).BestModel;
            Tuple <MulticlassSupportVectorMachine <Gaussian>, double, double, double> result; // Training(inputsList, outputsList);
            var fileBestByIt   = File.AppendText(Path.Combine(_directory, "historial_best_by_it.txt"));
            var file_all_stars = File.AppendText(Path.Combine(_directory, "all_stars_all_its.txt"));

            Star2[] stars = new Star2[_population];
            Star2   best;

            try
            {
                result = Training(inputsList, outputsList);
                best   = new Star2()
                {
                    svm        = result.Item1.DeepClone(),
                    error      = result.Item2,
                    Complexity = result.Item3,
                    Gamma      = result.Item4,
                    inputsList = inputsList.DeepClone()
                };
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error al entrenar el primero: " + ex.Message + "\nInner: " + ex.InnerException?.Message);
                best = new Star2()
                {
                    svm        = null,
                    error      = 1,
                    Complexity = -1,
                    Gamma      = -1,
                    inputsList = inputsList.DeepClone()
                };
            }
            fileBestByIt.WriteLine("Iteration: Initial model, Seed: " + seed + ", Error: " + best.error + ", Gamma: " + best.Gamma + ", C: " + best.Complexity + "\n inputs: " + best.inputsList.ToJsonString(true));
            fileBestByIt.Flush();

            file_all_stars.WriteLine("Model: inicial, Seed: " + seed + ", Error: " + best.error + ", Gamma: " + best.Gamma + ", C: " + best.Complexity + "\n inputs: " + best.inputsList.ToJsonString(true));
            file_all_stars.Flush();
            //inicialization
            for (int iStar = 0; iStar < stars.Length; iStar++)
            {
                stars[iStar] = new Star2()
                {
                    svm        = best.svm?.DeepClone(),
                    error      = best.error,
                    Complexity = best.Complexity,
                    Gamma      = best.Gamma,
                    inputsList = inputsList.DeepClone()
                };
                try
                {
                    for (int iInput = 0; iInput < stars[iStar].inputsList.Count; iInput++)
                    {
                        for (int jinput = 0; jinput < stars[iStar].inputsList[iInput].Length; jinput++)
                        {
                            stars[iStar].inputsList[iInput][jinput] = stars[iStar].inputsList[iInput][jinput]
                                                                      + ((_xrand.NextDouble() * -1) * stars[iStar].error * stars[iStar].inputsList[iInput][jinput]);
                        }
                    }
                    var res = Training(stars[iStar].inputsList, outputsList);
                    stars[iStar].svm        = res.Item1;
                    stars[iStar].error      = res.Item2;
                    stars[iStar].Complexity = res.Item3;
                    stars[iStar].Gamma      = res.Item4;
                    file_all_stars.WriteLine("Model: -1, Seed: " + seed + ", Error: " + stars[iStar].error + ", Gamma: " + stars[iStar].Gamma + ", C: " + stars[iStar].Complexity + "\n inputs: " + stars[iStar].inputsList.ToJsonString(true));
                    file_all_stars.Flush();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error al inicializar estrella " + iStar + ": " + ex.Message + "\nInner: " + ex.InnerException?.Message);
                }
            }
            foreach (var star in stars)
            {
                if (star.error < best.error)
                {
                    best.svm        = star.svm?.DeepClone();
                    best.error      = star.error;
                    best.Complexity = star.Complexity;
                    best.Gamma      = star.Gamma;
                    best.inputsList = star.inputsList.DeepClone();
                }
            }
            //cycle
            for (int i = 0; i < _iterations; i++)
            {
                Console.WriteLine("-----------------------------------------------------------------------------------------------");
                Console.WriteLine("Iteration: " + i + ", Seed" + seed + ", Error: " + best.error);
                Console.WriteLine("-----------------------------------------------------------------------------------------------");
                fileBestByIt.WriteLine("Iteration: " + i + ", Seed: " + seed + ", Error: " + best.error + ", Gamma: " + best.Gamma + ", C: " + best.Complexity + "\n inputs: " + best.inputsList.ToJsonString(true));
                fileBestByIt.Flush();

                if (best.error <= _minError)
                {
                    svm = best.svm;
                    WriteFiles(best.error, best.Gamma, best.Complexity, best.inputsList, outputsList, best.svm);
                    return(svm);
                }
                //each star
                for (int iStar = 0; iStar < stars.Length; iStar++)
                {
                    Star2 prevStar = new Star2()
                    {
                        svm        = stars[iStar].svm?.DeepClone(),
                        error      = stars[iStar].error,
                        Complexity = stars[iStar].Complexity,
                        Gamma      = stars[iStar].Gamma,
                        inputsList = stars[iStar].inputsList.DeepClone()
                    };
                    try
                    {
                        for (int iInput = 0; iInput < stars[iStar].inputsList.Count; iInput++)
                        {
                            for (int jinput = 0; jinput < stars[iStar].inputsList[iInput].Length; jinput++)
                            {
                                stars[iStar].inputsList[iInput][jinput] = stars[iStar].inputsList[iInput][jinput]
                                                                          + _xrand.NextDouble()
                                                                          * (best.inputsList[iInput][jinput] - stars[iStar].inputsList[iInput][jinput]);
                            }
                        }
                        var res = Training(stars[iStar].inputsList, outputsList);
                        stars[iStar].svm        = res.Item1;
                        stars[iStar].error      = res.Item2;
                        stars[iStar].Complexity = res.Item3;
                        stars[iStar].Gamma      = res.Item4;
                        file_all_stars.WriteLine("it: " + i + ", Model: " + iStar + " Seed: " + seed + ", Error: " + stars[iStar].error + ", Gamma: " + stars[iStar].Gamma + ", C: " + stars[iStar].Complexity + "\n inputs: " + stars[iStar].inputsList.ToJsonString(true));
                        file_all_stars.Flush();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error en it " + i + " al cambiar estrella " + iStar + ": " + ex.Message + "\n Inner: " + ex.InnerException?.Message);
                        stars[iStar] = prevStar;
                    }
                }
                for (int iStar = 0; iStar < stars.Length; iStar++)
                {
                    if (stars[iStar].error < best.error)
                    {
                        best.svm        = stars[iStar].svm?.DeepClone();
                        best.error      = stars[iStar].error;
                        best.Complexity = stars[iStar].Complexity;
                        best.Gamma      = stars[iStar].Gamma;
                        best.inputsList = stars[iStar].inputsList.DeepClone();
                    }
                    double sumError = 0;
                    for (int jStar = 0; jStar < stars.Length; jStar++)
                    {
                        sumError += stars[jStar].error;
                    }
                    if ((best.error / sumError) < _xrand.NextDouble() * 0.05)
                    {
                        Console.WriteLine("Se alcanzó el horizonte de eventos en " + iStar);
                        for (int iInput = 0; iInput < stars[iStar].inputsList.Count; iInput++)
                        {
                            for (int jinput = 0; jinput < stars[iStar].inputsList[iInput].Length; jinput++)
                            {
                                stars[iStar].inputsList[iInput][jinput] = stars[iStar].inputsList[iInput][jinput]
                                                                          + ((_xrand.NextDouble() * -1) * stars[iStar].error * stars[iStar].inputsList[iInput][jinput]);
                            }
                        }
                    }
                }
                svm = best.svm;
            }
            fileBestByIt.Close();
            file_all_stars.Close();
            WriteFiles(best.error, best.Gamma, best.Complexity, _originputsList, outputsList, best.svm);
            return(svm);
        }
Exemplo n.º 16
0
    public void countPoints()
    {
        Time.timeScale = 0; //Pausa spelet och tiden
        int numSaved = 0;

        Points += timeFactor * countdownScript.getTimeLeft();
        victims = GameObject.FindGameObjectsWithTag("Victim");
        foreach (GameObject victim in victims)
        {
            victimParam = victim.GetComponent <Parameters>();
            Dictionary <string, object> ParamDic = victimParam.getParamHash();
            if ((string)ParamDic["SetPrio"] == "unset")
            {
                Points -= unSetTriagePenelty;
            }
            else if ((string)ParamDic["SetPrio"] == ParamDic["prio"].ToString().ToLower())
            {
                Debug.Log("Correct");
                numSaved += 1;
                Points   += correctTriagePoint;
            }
            else if ((string)ParamDic["SetPrio"] != ParamDic["prio"].ToString().ToLower())
            {
                Debug.Log("incorrect");
                Points -= incorrectTriagePenelty;
            }
            if ((bool)ParamDic["Bleeding"] == true)
            {
                Debug.Log("Bleeding");
                Points -= incorrectTriagePenelty;
            }
            //Debug.Log(ParamDic["prio"]+" : "+ParamDic["SetPrio"]);
        }
        foreach (GameObject item in GameOverList)
        {
            item.SetActive(true);
        }
        //Behöver göras dynamisk när vi har fler levels

        if (Points <= 0)
        {
            PointRatio = 0;
        }
        else
        {
            PointRatio = Points; //Kvot för nuv. poäng genom tot. möjliga poäng * 100
        }

        PointsTxt.text = PointRatio.ToString();
        LevelTxt.text  = "1";
        int starCapPoint = victims.Length * correctTriagePoint;

        Debug.Log(PointRatio + " : " + starCapPoint);
        if (PointRatio > starCapPoint * 0.25f)
        {
            Star1.SetActive(true);
        }

        if (PointRatio > starCapPoint * 0.5f)
        {
            Star2.SetActive(true);
        }

        if (PointRatio >= starCapPoint)
        {
            Star3.SetActive(true);
        }
    }
Exemplo n.º 17
0
    void OnCollisionEnter2D(Collision2D col) //col ==> trou ;;//gameobject --> object qui est en collision avec les trous, on attache ce script à grain et nn trou
    {
        if (DDCreuser.action1 == true && DDGrain.action2 == true && gameObject.CompareTag("arrosoir"))
        {
            InstantiatePrefab(col.transform.position);
            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy
            if (col.gameObject.CompareTag("trou1"))
            {
                action3             = true;
                ScoreCounter.score += 1;
                InstantiatePlusOneAnim();
            }
        }

        if (DDCreuser.action1Tr2 == true && DDGrain.action2Tr2 == true && gameObject.CompareTag("arrosoir"))
        {
            if (ScoreCounter.score > 5)
            {
                isColliding = true;
                return;
            }
            InstantiatePrefab(col.transform.position);
            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy

            if (col.gameObject.CompareTag("trou2"))
            {
                action3Tr2          = true;
                ScoreCounter.score += 1;
                InstantiatePlusOneAnim();
            }
        }

        if (DDCreuser.action1Tr3 == true && DDGrain.action2Tr3 == true && gameObject.CompareTag("arrosoir"))
        {
            if (ScoreCounter.score > 8)
            {
                isColliding = true;
                return;
            }

            InstantiatePrefab(col.transform.position);
            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy

            if (col.gameObject.CompareTag("trou3"))
            {
                action3Tr3          = true;
                ScoreCounter.score += 1;
                InstantiatePlusOneAnim();
                //on montre la 1ere etoile
                StarOne.showStarOne();
                star1L1 = true;
            }
        }


        if (DDCreuser.action1Tr4 == true && DDGrain.action2Tr4 == true && gameObject.CompareTag("arrosoir"))
        {
            if (ScoreCounter.score > 11)
            {
                isColliding = true;
                return;
            }
            InstantiatePrefab(col.transform.position);
            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy

            if (col.gameObject.CompareTag("trou4"))
            {
                action3Tr4          = true;
                ScoreCounter.score += 1;
                InstantiatePlusOneAnim();
            }
        }



        if (DDCreuser.action1Tr5 == true && DDGrain.action2Tr5 == true && gameObject.CompareTag("arrosoir"))
        {
            if (ScoreCounter.score > 14)
            {
                isColliding = true;
                return;
            }

            InstantiatePrefab(col.transform.position);

            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy
            if (col.gameObject.CompareTag("trou5"))
            {
                action3Tr5          = true;
                ScoreCounter.score += 1;
                InstantiatePlusOneAnim();
            }
        }


        if (DDCreuser.action1Tr6 == true && DDGrain.action2Tr6 == true && gameObject.CompareTag("arrosoir"))
        {
            if (ScoreCounter.score > 17)
            {
                isColliding = true;
                return;
            }
            InstantiatePrefab(col.transform.position);

            RegenererGameObject();
            Destroy(this.gameObject); //l'ordre compte, il faut regenerer tout d'abord, après destroy

            if (col.gameObject.CompareTag("trou6"))
            {
                action3Tr6          = true;
                ScoreCounter.score += 1;
                InstantiatePlusOneAnim();
                //la plante6 pousse on le donne une 2 eme etoile
                Star2.showStar2();

                star2L1 = true;
                youWin.SetActive(true);
                Debug.Log(star2L1);
            }
        }

        else
        {
            isColliding = true;
        }
    }