Olafs Ameise


Dieses Projekt gehört zu einigen, die keinen wirklichen praktischen Sinn machen, aber Spaß gemacht haben, sie zu realisieren. Streng genommen gehört ja auch die zuvor besprochene Binäruhr  dazu, denn eine Uhr sollte ja eigentlich so leicht wie möglich abgelesen werden können…


Langton’s Ant ist eine bekannte Simulation einer Ameise. Diese bewegt sich auf einem zweidimensionalen Feld nach festen Regeln. Ich habe dies für ein 16 x 16 Neopixel-Display programmiert und die Regeln sind folgende:

  • Zunächst sind alle Felder leer (ihr Wert ist also „0“)
  • Trifft die Ameise auf ein Feld, so wird der Wert dieses Feldes um „1“ erhöht, wenn sie es verlässt.
  • Erreicht das Feld einen Wert von „4“, wird der Wert auf „0“ zurückgesetzt.
  • Trifft die Ameise auf ein Feld mit dem Wert „0“, dreht sie nach rechts,
  • trifft sie auf ein Feld mit dem Wert „1“, dreht sie nach links,
  • bei „2“ bleibt ihre Richtung unverändert und
  • bei „3“ ändert sie die Bewegung um 180°, bewegt sich also rückwärts.


Die Felder leuchten je nach ihrem Zahlenwert:

  • 0 = schwarz (also) aus
  • 1 = blau
  • 2 = grün und
  • 3 = gelb


Die Ameise selbst leuchtet rot.


Eine gewisse Herausforderung stellten die Ränder dar. Ist die Ameise bereits am rechten Rand angekommen und soll weiter nach rechts laufen, so ändert sie zwar den Wert des Feldes, bewegt sich jedoch nicht. Ihre nächste Bewegung wird dann durch den geänderten Wert des Feldes bestimmt. Nach diesem Prinzip wird auch für links, oben und unten verfahren.


Als eine weitere Schmakazie habe ich eingebaut, dass die Bewegungsgeschwindigkeit am äußersten Rand nur 1/4 beträgt, in der Reihe davor nur 1/2.


Hier ein kurzes Video dazu: