Ok, donc c'est bien le cas, donc du coup ce que je vais faire c'est que je vais faire une ligne qui va commencer du coup en x égale 0 et qui va finir du coup en x égale self.with, donc à la fin de la largeur de ma fenêtre, et ensuite ce que je vais faire varier du coup c'est le y, donc ça ça va dépendre du coup, bah en fait de quel, auquel je suis, et je vais me repérer grâce à mon for row in range, où je vais du coup savoir en fait, à quelle ligne je suis, et ça va me donner ma coordonnée y pour mettre la ligne au bon endroit. Voilà. Et du coup, le y du départ et le y du dérivé, c'est le même.
Et le raisonnement est à peu près pareil pour les colonnes, à part que cette fois-ci, c'est le x qu'on va faire varier, et le y qui reste le même, on commence à 0, donc tout en haut de la fenêtre, et on va jusqu'en bas de la fenêtre, donc en self.h, qui reprend du coup la hauteur de notre surface. Ok. Et ensuite, ce que je fais, c'est que...
pour chaque cellule, je vais regarder si la valeur représentative est égale à 1. Si c'est égal à 1, ça veut dire que ça sera vrai, vu que tout entier supérieur à 0 est vrai. Du coup, on rentre ici, on va dessiner un rectangle qui va prendre les dimensions de notre cellule. Et ça, ce sera repéré déjà avec la position. Donc ça sera le haut gauche, et ensuite on aura la largeur et la hauteur, qui sera du coup juste de la taille d'une cellule, et donc du coup on pourra remplir notre cellule de noir, du coup pour dire que c'est une cellule vivante, et ensuite on pourra du coup dessiner ce rectangle sur notre surface, et on lui donnera une couleur noire. Voilà, comme ceci.
Ensuite ça, cette fonction, elle sert à... Hop, j'essaie d'agrandir un peu, voilà, parce qu'elle est un peu longue. Elle sert à faire une simulation, quand on est à une simulation, on va voir ce qu'il va falloir mettre à jour dans notre carrière, donc quelle cellule va mourir et quelle cellule va vivre. Donc voilà, c'est grâce à ça. Et ensuite, comme je dis, vous voyez qu'à chaque fois qu'on fait une simulation, Une fois que j'ai fini, je fais un time.sleep 0.4, ce qui veut dire que du coup, je vais entre guillemets, arrêter mon code, enfin le mettre en pause, c'est-à-dire que je ne vais pas exécuter d'autres trucs pendant 0.4 secondes.
Donc ça veut dire qu'on aura bien le temps de voir cette simulation. Ce code, celui-là est un petit peu délicat, donc si vous voulez que j'en parle plus en détail de ce code, dites-le moi, et je ferai du coup une deuxième partie pour essayer de plus revenir dessus. Ok, et ensuite du coup, le main, qui du coup on va importer le Paygame à nouveau, on va importer du coup le game qu'on vient de créer, donc notre classe game de notre fichier game, et on va importer tous les variables, comme ça moi on n'a pas à se soucier de ce qu'on doit importer.
Ok, donc du coup là on va créer notre fenêtre, qui est notre fenêtre active, donc avec paygame.display.setMode, et on va mettre la largeur et la hauteur, on va créer une clock aussi, pour savoir combien d'itérations on va faire par seconde, ensuite on va avoir du coup notre fonction main, qui va avoir un run qui est égal à true, et fps, c'est du coup le nombre d'itérations qu'on va faire par seconde, on va faire une instantiation aussi de... game, en disant du coup le nombre de lignes et de colonnes qu'on veut, et ensuite on va faire un while run, donc là on va d'abord faire le cas où si on a besoin de quitter la fenêtre, bah du coup on peut quitter, y'a pas de soucis donc du coup on a notre boucle while run qui nous permet du coup de itérer en fait indéfiniment, enfin jusqu'à ce qu'on ferme la fenêtre tout simplement parce que c'est comme ça que fonctionne Pygame, sinon il va juste ouvrir une fenêtre et la refermer, donc du coup on a aussi le cas qui nous permet de gérer quand on veut cliquer sur la petite croix pour fermer notre fenêtre. Comme ça, ça quitte bien Pygame sans aucun problème.
Ensuite, ce qu'on fait, c'est qu'on va dessiner notre grille. Donc on va appeler DrawGrid notre méthode de game, qui est instantiée dans NookGame. On va ensuite mettre à jour notre grille avec UpdateGrid. Et on va faire Pygame.display.update, ce qui va permettre de mettre à jour notre interface graphique, notre fenêtre active. Et voilà, et ensuite, bon ça c'est juste pour dire en fait combien de fois par seconde on va itérer à l'intérieur de cette boucle, et ça, ça va répéter du coup indéfiniment.
Et du coup voilà, notre petit code est terminé, donc j'en ai fini pour ça, si vous avez des questions, n'hésitez pas à les poser dans les commentaires, je pense que je ferai aussi d'autres vidéos pour expliquer plus en détail tout ce code, et je pense aussi qu'à l'avenir, je vais essayer d'un petit peu l'améliorer, pour essayer par exemple de faire un menu un peu plus utile, vu que voilà, je sais pas, qu'on pourrait choisir à la... combien de rows et de calls on veut, et c'est peut-être aussi de modifier cette manière de mettre les cellules qui sont vivantes au début, parce que c'est un peu fastidieux et du coup c'est pas super fun, c'est pas super intéressant donc plein de choses à faire c'est la première version en améliorant au fur et à mesure voilà, moi sur ce je vous dis portez-vous bien et à la prochaine, salut !