Stap 7: De slang spel
Maar echt, ik denk dat de slang spel is de coolste bits voor de codering achter dit LED paneel; vooral omdat het is de meest interactieve. Voor degenen onder u die misschien niet weten, de snake spel is een soort spel dat over het algemeen populair op de oude Nokia-telefoons, waar u een "slang" gecontroleerd die liep rond op uw scherm, net als de afbeelding die u in deze stap ziet (overgenomen uit telegraph.co.uk)
Het doel van het spel is om de slang eet een stukje voedsel dat lijkt willekeurig ergens op het scherm. Als u met succes het voedsel aten door het hebben van uw slang lopen in het, zou uw slang langer in lengte groeien. De vangst- en wat maakte het spel lastig was dat (ten minste de versie ik speelde) u kon niet uw slang uitgevoerd in de muur van uw scherm of zelf, anders het zou sterven. Het spel kreeg ook geleidelijk sneller tempo als u succesvol meer en meer voedsel aten. Kortom, het was een van die games die lijken super eenvoudig in principe, maar zijn een stuk moeilijker in werkelijkheid (kinda like 2048 of Flappy Bird) verslavend.
De manier waarop dat Tommy dit slang spel ontworpen was door te profiteren van de Structs en Gekoppelde lijsten. Door het bijhouden van waar het hoofd bevond zich momenteel op het display van 30 x 30, zou hij een parameter "enable" om aan te geven dat bepaalde LED zou de snake's helderder kleur in plaats van de achtergrondkleur instellen. Zijn code houdt spoor van hoe lang is slang is en wordt alleen de (vroegere) staart van de slang weer ingesteld op de achtergrondkleur zodra zijn lus bepaalt dat de volledige lengte van de slang van kop tot staart op het scherm wordt weergegeven.
Op elke lus via controleert de code om te zien als het is tijd om de waarden op het scherm bijwerken op basis van het probleem. De moeilijkheid is de hoeveelheid vertraging tussen telkens die je visueel zien van de slang bewegen op het bord LED. Aangezien u meer eet, deze vertraging vermindert (samen met de lengte van de slang toeneemt), verhoging van de snelheid en de moeilijkheid.