示例#1
0
        public bool AktuelleStunde()
        {
            DateTime jetzt  = DateTime.Now;
            TimeSpan nichts = new TimeSpan(0);

            return(jetzt.Subtract(Anfang) >= nichts && Ende.Subtract(jetzt) > nichts);
        }
示例#2
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            if (step)
            {
                step = false;
            }
            else
            {
                step = true;
            }
        }

        if (Start != null && run && !step)
        {
            SearchGrid();
            steps++;
        }

        //Abbruch des Algorithmus
        if (Start != null && !run)
        {
            Start = null;
            AlgoList.Clear();
            UnityEngine.Debug.Log("Suchalgorithmus abgebrochen");
        }

        if (step)
        {
            if (Input.GetKeyDown(KeyCode.RightArrow))
            {
                if (Ende.GetEntdeckt() == false)
                {
                    wait = false;
                    SearchGrid();
                    steps++;
                }
                else if (Ende.GetEntdeckt() == true)
                {
                    path     = new CreatePath(Ende); //erstellen des Pfades
                    pathList = path.path;
                    character.GetComponent <CharacterScript>().Init(pathList);
                }
                else
                {
                    UnityEngine.Debug.Log("Ende nicht erreichbar");
                }
            }
            if (Input.GetKeyDown(KeyCode.LeftArrow))
            {
                if (current.getPrevious() != null)
                {
                    PreviousStep();
                    steps--;
                }
            }
        }
    }
示例#3
0
 //Algoritmus durchlauf zur Performancemessung ohne Darstellung
 private void SearchGridPerformance()
 {
     while (Ende.GetEntdeckt() == false && AlgoList.Count > 0)
     {
         current = AlgoList[0]; //aktuelles Hex     aktualisieren
         AlgoList.RemoveAt(0);  //letztes Element aus liste holen
         AddNeighborsToList();  // Nachbarn in Liste einfügen
         steps++;
     }
 }
示例#4
0
 //Methode zur Startinitialisierung
 private void InitStart() //Methode um die Tiefensuche zu Initialisieren
 {
     current = Start;
     current.SetEntdeckt(true);   //Erstes Hexagon Makieren
     current.IsStart();
     AddNeighborsToList();        //Nachbarn in Warteschlangeliste eintragen
     StepList.Add(current);
     steps++;
     Ende.IsEnde();
 }
示例#5
0
 //Suchfunktion
 private void SearchGrid()
 {
     if (Ende.GetEntdeckt() == false && AlgoList.Count > 0)
     {
         if (wait == false)
         {
             current = AlgoList[0]; //aktuelles Hex aktualisieren
             current.ChangeColor(0);
             StepList.Add(current);
             UnityEngine.Debug.Log("current Hex: " + current.xCoordinate + ", " + current.yCoordinate);
             AlgoList.RemoveAt(0); //letztes Element aus liste holen
             AddNeighborsToList(); // Nachbarn in Liste einfügen
             wait = true;
             steps++;
         }
         else //wartefunktiion
         {
             if (counter <= 0) //warten beenden
             {
                 wait    = false;
                 counter = setTimer;
             }
             else //warte zähler um eins veringern
             {
                 counter--;
             }
         }
     }
     else // Anschluss des Algortihmus
     {
         if (Ende.GetEntdeckt() == true)
         {
             path     = new CreatePath(Ende); //erstellen des Pfades
             pathList = path.path;
             character.GetComponent <CharacterScript>().Init(pathList);
         }
         else
         {
             UnityEngine.Debug.Log("Ende nicht erreichbar");
         }
         foreach (Hex g in GetComponent <Grid>().HexList)
         {
             if (g.GetEntdeckt())
             {
                 entdeckt++;
             }
         }
         UnityEngine.Debug.Log("Endeckte Felder " + entdeckt);
         AlgoList.Clear(); //Liste leeren
         Start = null;     // Start und Ende nullen
         run   = false;    //Updatefunktion auf false setzen
         steps = 0;
     }
 }
 public TimeSpan getDauer()
 {
     return(Ende.Subtract(Start));
 }