PlayPendium
About this game ↓
PlayPendium · About · Contact · Privacy · Terms · Cookies · Accessibility · Copyright · Browse all games · Classic arcade games · © 2026

Claw Compiler

Bestuur een magazijnkraan met code en herstapel gekleurde kratten binnen een instructielimiet die zo krap is dat recursie nodig is.

Hoe te spelen

Bouw een programma uit kraaninstructies (naar links en rechts bewegen, grijpen, neerzetten en kleurvoorwaarden) om de bakken met kratten om te zetten tot de doelstapel. De instructielimiet is bewust krap, dus je leunt op het commando Call, dat je hele programma opnieuw van bovenaf uitvoert; een voorwaarde die niet klopt, wordt het basisgeval dat de recursie stopt. Er zijn tien met de hand gebouwde levels, van één rode krat tot een toren van zes kratten, en acht daarvan zijn niet op te lossen zonder Call.

Een uitgewerkt voorbeeld

Toren van drie: drie rode kratten staan in bak 1 en moeten in bak 2 belanden, en je mag maar zes instructies gebruiken. Volledig uitgeschreven heeft elke krat Grab, Right, Drop en Left nodig: elf instructies voor drie kratten, zelfs als je de laatste Left weglaat. Zes is niet genoeg.

Schrijf dus één rit en laat die herhalen: Grab, If-held rood, Right, Drop, Left, Call. Dat zijn zes instructies. De kraan grijpt een krat, controleert of hij rood vasthoudt, brengt hem naar de overkant, zet hem neer, keert terug en roept het hele programma opnieuw aan. Bij de vierde aanroep is bak 1 leeg, Grab pakt niets, de controle If-held rood faalt en het programma stopt. Die falende controle is het basisgeval.

Verander If-held rood in If-held blauw en dezelfde zes instructies lossen ook het level met vier kratten en de toren van zes kratten op, want de routine telt nooit kratten; ze gaat door tot er geen meer over zijn. Daar draait recursie om: het programma beschrijft één stap en een stopregel, en de invoer bepaalt hoe vaak het wordt uitgevoerd.

Controles
Tips & strategie
Wat je gaat leren

Claw Compiler leert recursie aan via een kraan die kratten stapelt en een strikt zettenbudget, waardoor een moeilijk idee concreet wordt.

Oorsprong

Kraaninstructies — naar links en rechts bewegen, grijpen, neerzetten, en voorwaarden op kleur — zijn een minimale assembleertaal met een fysiek lichaam eraan.

Programmeren leren met een kleine robot in een kleine wereld gaat terug op Karel the Robot, de beginnerstaal die Richard Pattis in 1981 in een boek introduceerde en in zijn colleges aan Stanford gebruikte. Spellen namen het idee over: Lightbot leert lussen en procedures door een robot door een doolhof te programmeren, en de naaste voorouder van Claw Compiler is Cargo-Bot, een iPad-puzzel uit 2012 waarin je een robot leert kratten te verplaatsen. Two Lives Left bouwde het samen met Rui Viana op basis van zijn prototype in hun iPad-programmeerapp Codea, en bracht het uit als de eerste game die volledig op een iPad is geprogrammeerd.

De taak, bakken met kratten herschikken tot een doelstapel, is sorteren door een machine die precies één ding tegelijk kan vasthouden. Die beperking tot één grijper is een les op zich. Het is dezelfde beperking die een register oplegt, en het is de reden dat echt sorteren een plek nodig heeft om dingen neer te zetten — ontdekken dat je een reservebak nodig hebt, is het idee van tijdelijke opslag ontdekken.

Omdat Call altijd de laatste instructie is, is elk programma hier staartrecursief: de aanroep van zichzelf is het laatste wat het doet. Veel taalimplementaties maken van een staartaanroep een gewone sprong terug naar boven, en daarom kan hetzelfde programma zowel als recursie als als lus worden gelezen. Inzien dat die twee één idee zijn, is een groot deel van het begrijpen van recursie.

Over Claw Compiler

Claw Compiler is een origineel, gratis browserspel gemaakt voor PlayPendium: een kraantaal met zeven instructies, tien levels waarvan de limieten recursie noodzakelijk maken in plaats van optioneel, een gedeeld dagelijks level en een oefenmodus die de andere levels uitdeelt.

Blader door alle spellen →