Big Tuto on OOP & MVC with the Game Of Life

1.0

By steph, 2 weeks ago

Controls: D-Pad: [Arrows / WASD] - A: [J] - B: [K] - Menu: [U] - Home: [I]
Enjoy games at full speed with sound and lights on the Gamebuino META!
Emulator by aoneill

English version is available with Google Translate!

But take the time to read the introduction in English below...

TUTO COMPLET sur le Jeu de la Vie


Je vous propose ici un tutoriel très complet s'appuyant sur une petite récréation mathématique, à défaut d’un véritable jeu au sens classique du terme, pour la Gamebuino META : le célèbre Jeu de la Vie, imaginé par John Conway dans les années 1970. Vous allez voir que c’est un petit exercice formidable, qui va nous permettre d’aborder de nombreux concepts et techniques de programmation. L’idée maîtresse qui m’a guidé tout au long de la rédaction de ce tutoriel était de proposer un exercice à la fois simple et riche en possibilités, que nous allions pouvoir traiter de manière différente, au travers d’une approche graduelle dans la complexité de la programmation, pour aboutir à une application finalisée avec une architecture maîtrisée.

Le tutoriel est disponible ici.

Ce que vous allez apprendre dans ce tutoriel :

  • programmer un automate cellulaire,
  • optimiser votre code pour :
    • accélérer la vitesse d’exécution,
    • économiser l’espace mémoire,
  • mieux organiser votre code avec la Programmation Orientée Objet,
  • concevoir vos applications avec une architecture Model View Controller,
  • intercepter les événements lorsque l’utilisateur appuie sur les boutons,
  • gérer des menus dans vos applications,
  • programmer un gestionnaire des LEDs de la console,
  • programmer un gestionnaire d’effets sonores.

N’hésitez pas à me communiquer vos commentaires, ou à me demander des précisions sur les éléments que vous n’avez pas bien compris.

Je tiens à préciser que cette application est ma première expérience de programmation en C++ … et oui ;-) moi aussi j’apprends comme vous ! Mon code est très probablement perfectible, aussi je compte sur les codeurs expérimentés de la communauté pour me faire part des améliorations possibles (ou nécessaires !). Je tâcherai de les intégrer dès que possible… parce-que j’ai quand même un TAF dans la vraie vie… et que je ne peux pas consacrer tout le temps que je voudrais à m’amuser avec cette super petite console !


Game of Life COMPLETE Tutorial


I propose here a very complete tutorial based on a small mathematical recreation, instead of a real game in the classic sense of the term, for Gamebuino META: the famous Game of Life, imagined by John Conway in the 1970s. You will see that it is a great exercise that will allow us to tackle many concepts and programming techniques. The main idea that guided me throughout the writing of this tutorial was to propose an exercise that is both simple and rich in possibilities, that we would be able to treat in a different way, through a gradual approach in the complexity of the programming, to achieve a finalized application with a controlled architecture.

I apologize to the English-speakers, my tutorial is written in French ... but you can get the English version here with Google Translate.

However, the French version of tutorial is available here. And you'll need it, because unfortunately Google Translate breaks the layout of code snippets and doesn't correctly show the YouTube videos...

What you will learn in this tutorial :

  • program a cellular automaton,
  • optimize your code for:
    • speed up the execution of your code,
    • save the memory space,
  • better organize your code with Object Oriented Programming,
  • design your applications with a Model View Controller architecture,
  • intercept events when the user presses the buttons,
  • handle menus in your applications,
  • program a LED manager for the META,
  • program a sound effects manager.

Feel free to send me your comments, or to ask me for details on the elements that you have not understood.

I want to clarify that this application is my first experience of programming in C++ ... yeah ;-) I'm learning like you! My code is probably perfectible, so I rely on experienced coders in the community to tell me about possible improvements (or necessary!). I will try to integrate them as soon as possible ... because I still have a job in real life ... and that I can not spend all the time I would like to have fun with this great little console!

Last comments

steph

NEW 4 days ago

sautax sautax

Merci sautax ! C'est très sympathique de ta part. Je pousserai la mise à jour du lien vers la bonne branche de ton dépôt dès ce soir.

Edit: c'est fait :-)

Party_Pete

NEW 4 days ago

C'est incroyable! Le tuto est trés complet, et il a connaissance beaucoup pour moi apprendre C++ sur la Gamebuino. Je ne parle pas français bien, mais je comprende assez de français essayer lire le tuto en français. Merci beaucoup pour vos poste!

sautax

NEW 4 days ago

Par rapport à mon dépôt j'ai fait une branche qui restera la même pour toujours comme ça je peux faire des changements ^^

https://github.com/sautax/game-of-life-gamebuino/tree/0.4

steph

4 days ago

Merci sautax ! C'est très sympathique de ta part. Je pousserai la mise à jour du lien vers la bonne branche de ton dépôt dès ce soir.

Edit: c'est fait :-)