Le jeu de la vie gamifié

Réalisé avec

  • VuejsVuejs
  • TailwindcssTailwindcss

C'est quoi ?

Originellement une preuve de compétences, j’ai décidé de le convertir en un jeu basé sur le “Jeu de la vie” de John Horton Conway.

La genèse

J’ai eu envie de mettre en pratique plusieurs éléments du livre “Clean architecture” de Robert C. Martin, et un ami développait le Jeu de la vie. C’est un algorithme simple et rapide à développer, sur lequel j’ai pu travailler quelques principes SOLID et les tests unitaires.

Coder proprement, c'est chouette

J’ai commencé par un boilerplate avec TS et Jest. J’ai écrit mes tests unitaires puis j’ai écrit le code de logique au coeur du jeu (logique d’une cellule, de la matrice, d’un tour, …).

Au départ, pas besoin de front : mes tests unitaires me montraient que tout fonctionnait. Puis j’ai affiché les grilles dans la console. Ensuite, j’ai eu envie de profiter du découplage logique/front pour venir changer cette visualisation console par un front en vuejs qui serait plus interactif. Cela s’est opéré sans problème, et j’ai rapidement eu un front sobre et fonctionnel.

Mais ça doit servir

J’ai partagé le site à des amis. Malheureusement j’étais la tête dans le guidon et le projet n’avais pas de but ni d’utilisateur type. J’ai ajouté un tutoriel et puis je me suis demandé ce que je voulais en faire. Continuer la preuve de compétence ? Aller vers un jeu ?

Alors je suis parti sur un jeu. En partie parce qu’un projet sans utilisateurs c’est un projet qui ne rapporte pas d’argent, qui n’a pas de retours et qui ne s’améliore pas. Je dois me confronter à des problématiques réelles, des évolutions qui n’émanent pas de moi. J’ai donc cherché à gamifier le jeu : j’ai ajouté une logique pour calculer un score, créé des tips pour informer le joueur au fur et à mesure (plutôt que le bombarder d’infos dès le début), etc. Certaines fonctionnalités sont passées, d’autres sont plus complexes (comme le “pokédex” de patterns de cellules).

Life