i

Besonderer Einsatz von Schleifen

Endlosschleifen

In einer Endlosschleife ist die zugehörige Bedingung immer erfüllt, es gibt also kein Abbruchkriterium, das "irgendwann" mal greift. Bekannt sind Endlosschleifen in erster Linie als unerwünschte Programmierfehler. Jedoch gibt es auch Szenarien, in denenen man durchaus ganz bewusst keinen Abbruch möchte. Als Beispiel wählen wir hier das Folgen der Kurven eines Rundwegs.

Endlosschleife: Folgen der Kurven eines Rundwegs[1]

Der Trick dabei ist es, mit dem Roboter entlang der schwarzen Kante zu fahren (z.B. der äusseren). Der Lichtsensor misst die Helligkeit:

hell/weiß
Der Roboter muss leicht nach links lenken.
dunkel/schwarz
Der Roboter muss leicht nach rechts lenken.
(grau)
optional: (Der Roboter kann geradeaus fahren.)
Flussdiagramm: Folgen der Kurven eines Rundwegs in Endlosschleife[2]
import lejos.nxt.Motor;
import lejos.nxt.NXTRegulatedMotor;
import lejos.nxt.LightSensor;
import lejos.nxt.SensorPort;

public class LinieFolgen
{
  public static LightSensor ls = new LightSensor(SensorPort.S3);
  public static NXTRegulatedMotor reMo = Motor.A;
  public static NXTRegulatedMotor liMo = Motor.B;
  
  public static void main (String args[])
  {
    reMo.setSpeed(800);
    liMo.setSpeed(800);
    
    reMo.forward();
    liMo.forward();
    
    while(true)
    {    
      int val = ls.readValue();   
      
      if(val < 30)
      {
        reMo.setSpeed(800);    
        liMo.setSpeed(200);
      }  
      else
      {        
        if(val > 50)
        {
          reMo.setSpeed(200);    
          liMo.setSpeed(800);
        }  
        else
        {
          reMo.setSpeed(800);    
          liMo.setSpeed(800);
        }
      }      
    }                  
  }      
}

Aufgabe: Wettrennen - Pimp my Robot

  1. Alle verwenden den selben Roboter. Wer programmiert die schnellste Runde? Bei der Optimierung muss man die Balance zwischen Geschwindigkeit und Zuverlässigkeit finden. Fliegt der Roboter aus der Kurve oder verlässt er die Fahrspur in anderer Weise, wird der Spieler disqualifiziert.

Quellen

  • [1]: Endlosschleife: Folgen der Kurven eines Rundwegs - Urheber: mks - Lizenz: Inf-Schule.de
  • [2]: Flussdiagramm: Folgen der Kurven eines Rundwegs in Endlosschleife - Urheber: mks - Lizenz: Inf-Schule.de

Suche

v
2.6.3.8.3
www.inf-schule.de/programmierung/robotik/lejoseinstieg/schleifen/endlosundschachtel

Rückmeldung geben