public bool AktuelleStunde() { DateTime jetzt = DateTime.Now; TimeSpan nichts = new TimeSpan(0); return(jetzt.Subtract(Anfang) >= nichts && Ende.Subtract(jetzt) > nichts); }
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--; } } } }
//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++; } }
//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(); }
//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)); }