Algorithms

Aus hyperdramatik
Zur Navigation springen Zur Suche springen

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();
  }
}