-Correction d'un bogue lors d'un stop par la fonction "reallystop"
-Renommage des fonctions programmée avec le préfixe "prog_" et les fonctions événementielles de menu par "click_", "drag_" et "motion_".
-L'appel des fonctions a réaliser sur chaque élément de menu est traité par la fonction "launch" qui créer un dict "state" avec toutes les informations necessaire au traitement de l'évènement (Type, Coordonnées, modifiers, Boutons..etc).
-Il est possible de faire des évaluation sur les booléens et sur les textes afin de rendre le menu dynamique.
- Ajout de nouveau icônes
- Suppression de la variable dat et remplacement par une variable unique Menus qui contient une structure décrivant le comportement des menus de jeu.
-Suppression d'un gros bogue qui provoquait l'inversion des éléments activables et non activables.
-Encore un bogue supprimé lors du redimensionnement de la fenêtre et que les caddits disponible sont à 0.
- Dans la fonction "reallystop", l'oubli d'un deepcopy provoquait des erreurs de réinitialisation de la variable current depuis le dictionaire persistant qui était lui aussi modifié.
-La fonction invert, boguée, modifiait la charge neutre d'un électron neutre.
Stocké dans la base globale "dbdata" du jeu:
-menu dans la variable "dat"
-elements de jeux dans la variable "art"
-pour la définition des niveaux de jeu "worlds"
Stocké dans la base "utilisateur" du jeu situé dans le repertoire personnel de l'utilisateur:
-pour l'enregistrement des parties utilisateurs "Uworlds"
-pour l'enregistrement de l'avancement du jeu "Finished"
-Renomage de la fonction drawvictory vers drawcondvictory afin d'être plus explicite.
-Explosion de la fonction drawgrid en drawgrid+drawpopup+drawbigstat+drawgameover+drawvictory afin d'améliorer la clarté du code.
-Blocage de la taille de la fenêtre a un minimum de 1024*768
-Modification de l'implantation de conditions de victoire et des données actuelles dans la barre du haut pour autoriser un redimensionnement de l'interface en fonction de la taille de la fenêtre.
-Le passage en plein écran (screen) appelle la fonction resize.
-initgrid déclenche la fonction resize.
-Rajout de la récupération des valeurs a des fins statistiques dans la variable stat_var au sein de la fonction nextgrid.
-Augmentation des rayons lors de la collision, rayon+1 en collision 2xe+ ou 2xe- et rayon+10 en collision 2e-2e+.
-Modification des éléments canaliseur gauche et droit dans les fonctions isgauche et isdroite.
-Intégration de protons et neutrons dans la fonction infos qui dénombre chacune des catégorie de particules.
-Réinitialisation de la variable statistique stat_var lors des arret de simulation (reallystop).
-Création d'une fonction stater qui permet de modifier la variable seestat qui conditionne l'affichage des statistiques.
-Implémentation de l'affichage des statistique dans la fonction drawgrid.
-Modification de la fonction drawgrid pour permettre le redimensionnement de la barre du bas en fonction de la résolution horizontale de l'écran. Le diagramme de répartition varie en taille voir se subdivise en deux selon la place disponible et les icones tech et cout sont impérativement implanté en bas a droite.
-Correction d'un bogue dans drawgrid : l'affichage de la couleur de fond de l'élement chimique était érroné.
-Ajout dans l'affichage des mondes (drawworld) d'un cadenas sur les grilles non disponibles et du numéro de monde en haut a gauche.
-Modification de la fonction drawstat afin de pouvoir faire des diagrammes de répartitions selon un tableau fournis en paramètre.
-Implémentation des fonctions drawgraph et drawcumulgraph pour dessiner des graphiques et graphiques cumulés.
- Mise a zero des objectifs dans la variable victory dans init.
- Force quelque soient les valeurs de zoom, decx et decy le centrage automatique au chargement d'une grille de niveau.
- Debut d'implémentation d'un menu de préférence.
- Ajout de la fonction drawlaser qui est utilisée dans la fonction drawworld en charge de l'affichage du sélecteur de grille (niveau) pour rajouter un effet graphique de liaison entre les niveaux qui ont été débloqués.
- Ajout d'un effet autour des carrés de selection de tâche dans le menu bas.
- Affichage des limite a partir du niveau 5 avec la mention illimité si le nombre de cycle est grand plutot qu'on affichage numérique.
- Recadrage des message de perte ou de victoire en fonction de la taille écran.
- Suppression d'un bug dans la fonction infos qui donnait des informations eronés de victoire.
- Ajout d'un motif de gameover : création d'un neutron ou d'un proton alors que la case située juste en dessous du réacteur est déjà occupée.
- Correction d'un bogue dans la fonction erase qui ne supprimait pas correctement les protons et neutrons.
- Modifie le gameover de telle manière a ce qu'uniquement les collisions entre protons et neutrons soient sanctionnée par un gameover.
- Correction d'un bogue dans la fonction mousepress pour éviter que l'on puisse déclancer l'action au premier clique quand celle-ci est génératrice d'objet (dessin).
- Rajout du chargement des polices de caractère au lancement puis affectation des polices dans les labels.
- Changement de couleurs des éléments textes et reglages de coordonnées en fonction des nouvelles polices.
- Ajout des fichiers de polices dans le répertoire font.
- Modification de l'image levels2.png afin d'affiner le contraste.
- Modification du fichier worlds.dat afin de repositionner les éléments suite aux changements de police.
- Ajout du positionnement en Y de txt_drag et txt_drag2 dans la fonction drawgrid.
- Ajout du calcul automatique des variables decx,decy et zoom afin de faire rentrer automatiquement le plateau de jeu dans la fenêtre de façon optimale lors de l'appel de la fonction readgrid.
- Effacement de l'écran dans la fonction refresh en utilisant clear.
- Ajout dans la fonction drawsquare de la posibilité de dessiner un parallépipède rectangle plein (full=0) avec contour mais sans transparence (full=1) en donnant 2 a l'argument full.
- Modification de l'utilisation des images de façon a les charger une seule fois en début de programme puis de les utiliser par la suite avec la fonction blit.
- Modification de l'utilisation des labels de façon a les créer une seule fois en début de programme puis de les réutiliser en modifiant les propriétés. Cela pourrait regler un problème d'utilisation mémoire important.
- Bug: mauvaise implantation de la fonction return dans la fonction mouse_press provoquant la création d'élément sur le plateau de jeu lors de leur choix.
- Autre bogue dans la fonction mouse_drag provoquant le dessins sur le plateau de jeu de façon non prévue.
- Erreur dans le déclenchement du game over suite à la collision protron-neutron : le mauvais message est affiché, gameover(2) sera remplacé
- Suppression d'un bout de code inutile dans la fonction itsvictory.
- Création d'une fonction stop due à la façon dont la gestion du changement d'icone est réaliser et stocker par le dict items.
- Modification de la fonction setnothing de telle façon que l'on puisse effacer graduellement les éléments des deux couches et d'éviter la suppression des éléments de didactiel donc le niveau technologique est supérieur au niveau de la grille actuelle.
- Modification de la fonction setnothing de telle façon que l'on ne puisse remplacer des éléments de didactiel donc le niveau technologique est supérieur au niveau de la grille actuelle.
- La selection du menu du bas est modifié avec un système plus visible de carré plein avec de la transparence.
- Les informations de cycles sont présentes a partir du niveau technologique 0 et les maximums s'affichent au dela du niveau 5.
- L'affichage des cellules n'est plus réalisé avec drawsquare mais avec plusieures commandes glvertex afin de générer un plateau avec des couleurs dépendantes de la configuration des pistes.
- L'affichage du choix des niveaux grilles s'adapte à la résolution verticale de l'écran.
- Rajout de la possibilité de changer la transparence en donnant un quatrième argument optionnel à la fonction drawsquare et drawsemisquare.
- Ajout d'une fonction drawtriangles qui dessine des triangles aux quatres coins de éléments activables et suppression du cadre autour des éléments non activables.
- Corrige un bug dans la fonction drawworld, on doit vérifier que la liste des mondes a activer en cas de victoire ne soit pas nulle.
- Ajout d'une fonction unactive et modification de la fonction erase afin de désactiver totalement les éléments lors que l'on stope la simulation.
- BUG: Les senseurs K,L,M et N doivent etre sensibles aux superelectron negatifs et pas positifs.
- Demarrage de l'application par défaut en plein écran.
- Remise a zero de la variable stat et donc de la répartition des particules sur le jeu lors de l'appel de reallystop (stop du jeu).
- Changement du fonctionnemment de gameover et itsvictory afin de figer le jeu lorsque qu'on gagne ou l'on perd une partie. Après une action sur les commandes, on procéde à l'arrêt effectif avec la commande reallystop.
- Ajout du démarrage de la video d'intro par le player au lancement du jeu.
-Ajout de la création automatique du fichier pref.dat et déplacement de celui-ci dans un dossier user.
-Déplacement des données de niveaux personnalisés vers le dossier user.
-Evite le rechargement des niveaux dans la variable items par la fonction readlittlegrid, en vérifiant l'existence de la clé "cout"