Algorithms
Version vom 13. März 2019, 14:44 Uhr von Fkirschner (Diskussion | Beiträge)
Alle Snippets sind zunächst Pseudocode und je nach verwendeter Programmiersprache anzupassen.
Generell
Finde die Stelle mit der höchsten Zahl in einem Array von Zahlen
int höchsteZahl = -1000000; int stelle = -1; for (int i=0;i<arrayName.länge;i++){ if (arrayName[i]>höchsteZahl){ stelle=i; höchsteZahl=arrayName[i]; } }
Arduino
Führe eine Funktion einmalig aus, wenn ein Button gedrückt ist, und einmalig etwas anderes, wenn er losgelassen wird
int buttonDown =0; int inputPin = 5; //hier muss der Pin eingetragen sein, an dem der Button hängt [...] void loop(){ if (digitalRead(inputPin)==LOW){ buttonDown++; } if (buttonDown==1){ DoSomethingOnceWhenPressed(); } if (digitalRead(inputPin)==HIGH && buttonDown>0){ DoSomethingOnceWhenReleased(); buttonDown=0; } }
Mache etwas alle x-Durchläufe
int loopCounter=0; int alleXLoops = 15; //Führt eine Funktion alle 15 loops aus [...] void loop(){ loopCounter++; if (loopCounter%alleXLoops==0){ DoSomethingEveryXLoops(); } }
Unity
Führe eine Funktion einmalig aus, wenn ein bestimmter Zustand erreicht ist
public bool bZustand=false; void Update(){ if (/*ZustandsAbfrage*/){ bZustand=true; } if (bZustand){ DoSomethingOnce(); bZustand=false; } }
Verändere die Position eines Objektes kontinuierlich entlang einer Achse
public GameObject meinObjekt //hier muss im Editor das Objekt das bewegt werden soll abgelegt werden void Update(){ meinObjekt.transform.position += new Vector3(xWert,yWert,zWert); }
Von einer Farbe über Zeit zu einer anderen wechseln, per IEnumerator
IEnumerator ChangeColor(){ Color colornew = new Color(); float t = 0; float amountOfSeconds = 4.0f; while (t < 1.0f) { colornew = Color.Lerp(colorBegin, Color.magenta, t); GetComponent<Renderer>().material.color = colornew; t += Time.deltaTime/amountOfSeconds; yield return new WaitForEndOfFrame(); } }