Die Lösung dieser Aufgabe besteht aus zwei Programmen: Eines für den Producer und eines für die Consumer.
Die Consumer-Karas
Nach dem Betreten einer Kleeblatt-Reihe sucht der Kara das Ende des Blocks, weil es einfacher ist, die Kleeblätter von einem Ende her zu ersetzen. Nach dem Ersetzen muss der Kara den Block wieder verlassen. Nicht immer kann ein Kara den Block einfach am Ende verlassen, da dort ein anderer Kara den Weg blockieren könnte. Er muss also eine Stelle finden, wo er den Kleeblatt-Block verlassen kann. Wenn er den Block verlassen hat, muss er noch die Critical Section freigeben. Dann beginnt die Suche nach Kleeblättern von vorne...
Der Producer-Kara
Im Zustand "lege" überprüft der Kara die Felder links, rechts und vorne. Sind alle drei Felder frei, dann legt er das erste Kleeblatt (mittleres Bild). Nach jedem Schritt und drei weiteren freien Felder kann er ein weiteres Kleeblatt legen. Das tut er ebenfalls nur mit einer gewissen Wahrscheinlichkeit, andernfalls bricht er den aktuellen Block ab und geht wieder in den Zustand "laufe", um eine andere Stelle für eine weitere Reihe zu suchen.
Hinweis: Um zu vermeiden, dass ein Consumer-Kara mit dem Ersetzen eines eben erst begonnenen Blockes beginnt, wird der Zustand "lege" als Critical Section markiert.