Per posar a prova els meus coneixements de Python, vaig replicar el mític joc del Snake. L’objectiu per aquest exercici era clonar la funcionalitat bàsica del joc original. Vaig utilitzar la biblioteca de subprogrames PyGame que està pensada per facilitar el desenvolupament de jocs per computador. Abans d'això no tenia cap experiència amb Pygame, així que ha estat un aprenentatge. Podeu accedir al codi complet al meu perfil de GitHub aquí.
Disseny
Si mai heu jugat al Snake, coneixereu tots els elements familiars: la serp, l’aliment, els bonus, les parets i la puntuació. Tot i que hi ha moltes versions del joc, vaig intentar que la meva rèplica tingués un aspecte semblant al de la versió old school que incorporaven els telèfons Nokia 3310 de l’any 1998 👵. És a dir, un joc monocromàtic i d’aquells que tens la sensació que en qualsevol moment et pot entrar un pixel a l’ull.
Mecànica de joc
El Snake és un videojoc mític dels anys 70 que consisteix en moure una serp dins d’una àrea de joc limitada per 4 parets mentre aquesta es va cruspint l’aliment. Cal evitar que la serp xoqui tant amb les parets com amb el seu propi cos. Cada cop que menja, creix una posició, sumant punts i augmentant la dificultat del joc.
De tant en tant també apareix durant uns segons alguna criatura indefensa que suma punts extra al ser devorada. El jugador controla la direcció del cap de la serp ⬆️ ⬇️ ➡️ ⬅️, i el cos la segueix. Una restricció afegida és que no es pot aturar el moviment de la serp quan ha començat el joc ni fer un moonwalk, és dir, anar en sentit oposat a l’actual.
La serp es mou a una velocitat constant al llarg de tota la partida. Per a controlar el refresc del moviment de la serp, està temporitzat amb la crida clock.tick(60)
al cos del game-loop o bucle principal del joc; això fa que el programa faci 60 imatges per segon. Per modificar la velocitat de la serp, només cal augmentar o disminuir aquest paràmetre.
Podeu veure un exemple del funcionament aquí. Gaudiu-la!