Programmeren

Ik blijf wanhopige hopen dat ooit een van de kinderen uit zichzelf gaat programmeren, maar ‘t ziet er niet zo goed uit.

Mijn ene overwinning tot nog toe is dat Jan een Snake-spelletje heeft gemaakt in Python.

Met hulp voor de syntax, weliswaar, maar toch: alle logica zelf gevonden en gedefinieerd. Da’s toch al iets. Aan de andere kant: het is ondertussen al een paar maand geleden en hij was het al min of meer allemaal vergeten.

We zijn vanavond samen door de code gegaan, en ik heb gelijk de indruk dat hij het allemaal weer snapt.

uitleg

Zijn programma gaat zo:

  1. allerlei dingen inladen (pygame, time, random, bladibla)
  2. allerlei variabelen definiëren (hoeveel vakjes, hoe groot de vakjes, kleuren, geluid, etc.)
  3. een fruit ergens op het veld zetten
  4. een slang met één stukje maken en die in een random richting laten vertrekken
  5. zo lang het niet game over is:
    1. kijken welke toets er ingedrukt is
      1. als escape, stoppen
      2. als pijltje naar boven/rechts/onder/links en de richting was niet “naar beneden/links/boven/rechts”, dan wordt de richting “naar boven/rechts/onder/links”
    2. een kopie van de slang maken
    3. de slang leegmaken op het kopje van de slang na
    4. het kopje van de slang verplaatsen naar de richting
    5. als het kopje voorbij de grenzen van het bord komt, dan aan de andere kant zetten
    6. als het kopje van de slang zich in de oude slang bevindt, is het game over
    7. als het kopje van de slang zich op een fruit bevindt:
      1. eetgeluidje afspelen
      2. nieuw fruit maken ergens op het veld
      3. lengte van de slang verhogen
      4. score verhogen
      5. FPS aanpassen (volgens een formule die we met trial & error bekomen hebben: 5 + de score gedeeld door 5, met een maximum van 25 FPS)
    8. de oude slang achter het kopje van de slang plakken (helemaal als een fruit gepakt werd, en anders alles behalve het laatste stukje)
    9. alles tekenen
      1. eerst een kader in het groen
      2. dan alle stukjes van de slang in het wit
      3. dan het fruit in het rood
      4. dan de score en de FPS
  6. als het game over is:
    1. “game over” + de score tonen
    2. wachten tot escape geduwd wordt

Het is eigenlijk niet zo moeilijk, maar toch: het concept dat alle stukjes van de slang in een lijst van twee-dimensionale elementen zitten, ‘t is ook niet helemaal evident. 🙂

De vorige versie draaide op een Raspberry Pi, en daarbij had hij dan ook een lichtshow gemaakt — lampjes die flikkerden bij score, bij game over en zo — maar da’s toch wat behelpen wegens geen soldeerbout in huis, en dus is het bij een pc-versie gebleven.