π
<-

Game of Life

Re: Game of Life

Messagede Clément.7 » 07 Mai 2016, 21:32

Je pense que ça sera simple de faire ça... Tant que L1 ne fait pas planter ma TI :D
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Messagede Bisam » 08 Mai 2016, 09:15

L'optimisation proposée par Grosged permet de supprimer plusieurs tests et devrait déjà faire gagner du temps.
Code: Tout sélectionner
For(Y,2,9)
  For(X,2,17)
    [A](Y-1,X-1)+[A](Y-1,X)+[A](Y-1,X+1)+[A](Y,X-1)+[A](Y,X+1)+[A](Y+1,X-1)+[A](Y+1,X)+[A](Y+1,X+1)->S
    (S=3) or (S=2)*[A](Y,X->[B](Y,X)
  End
End

Tu peux aussi éviter des copies de matrices en utilisant alternativement les matrices [A] et [B] : à une génération, [A] contient la génération en cours et [B] la suivante... et à la génération suivante, c'est le contraire.
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5670
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Game of Life

Messagede Clément.7 » 08 Mai 2016, 11:26

Ah, j'avais pas vu son edit :p
En effet ça devrait accélérer je vais essayer ça de suite
EDIT : Bizarre, la simulation est mauvaise avec ce code...
EDIT 2 : Il faut prendre en compte la naissance des cellules, soit :

Code: Tout sélectionner
For(Y,2,9)
  For(X,2,17)
    [A](Y-1,X-1)+[A](Y-1,X)+[A](Y-1,X+1)+[A](Y,X-1)+[A](Y,X+1)+[A](Y+1,X-1)+[A](Y+1,X)+[A](Y+1,X+1)->S
    (S=3 and not([A](Y,X)))+(S=3) or (S=2)*[A](Y,X->[B](Y,X)
  End
End


Mais c'est étrange, le programme ne va pas plus vite...
Par contre je ne vois pas comment je pourrais utiliser alternativement les deux matrices ? À moins de dupliquer le code...
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Messagede grosged » 08 Mai 2016, 16:20

Tu as dû mal recopier, le test
    (S=3) or (S=2)*[A](Y,X->[B](Y,X)
fonctionne bien.
Quand les voisins sont au nombre de 3, nul besoin de prendre en compte la naissance des cellules, car ,avec ou sans cellule au milieu,le résultat sera invariablement le même : cellule au milieu.
Et quand il y a 2 voisins, aucun changement n'est effectué, d'où le
    (S=2)*[A](Y,X->[B](Y,X
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.5%
 
Messages: 776
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Game of Life

Messagede Clément.7 » 13 Mai 2016, 22:24

Bon vu que le programme en TI-Basic est pas super rapide (pour ne pas dire carrément lent) j'ai recodé le tout en axe en maintenant le programme fonctionne parfaitement (après quelques... expérimentations :#roll#: et pas mal de RAM clear aussi :D)

Donc, au programme (sans mauvais jeu de mot) :

- Les cellules sont affichées graphiquement (rectangle de 3x3 pixels)
- La grille est redimensionnable depuis l'éditeur (de 1x6 à 20x25), la taille par défaut étant 15x20
- Il est possible de sauvegarder la grille en cours sous n'importe quel nom avec la touche sto-> et de la charger avec ln(
- La simulation peut être effectuée étape par étape avec la touche Math
- Génération d'une grille aléatoire avec ^
- Modification de la vitesse d'exécution avec x et /

Le programme Axe est d'ailleurs bien plus rapide puisque pour une grille de 126 cellules (9x14), là où le TI-Basic mettait 10 secondes pour afficher chaque étape (soit 0.1 FPS), celui-ci affiche 23 images par seconde :o.
Pour une grille de 500 cellules on arrive tout de même à du 8 FPS, ce qui est trop rapide pour que l'on puisse vraiment voir une belle animation (pour une fois que le nombre de FPS est trop élevé :#roll#: ). Avec une grille de 6 on arrive à 37 FPS, mais je doute que vous vous en serviez beaucoup :troll:

Pour modifier la vitesse vous pouvez utiliser les touches multiplier x et diviser [b]/[b]. Je mettrais le programme en ligne dès demain.

Par ailleurs si quelqu'un sait comment condenser les données écrite dans les fichiers : j'utilise la liste L1 et mets 0 ou 1 dans chaque case et écrit dans le fichier comme ceci (coucou Hayleia :troll: ) :

Code: Tout sélectionner
ClrHome
Disp "File name ?" // Au passage ce message ne s'affiche pas
input->A
"appv        "->D
Copy(A,D+1,8)
UnArchive D // Ne marche pas
GetCalc(D,W*H+3)->P // W = largeur ; H = hauteur ; +3 car le début du fichier contient la largeur la hauteur et la vitesse de simulation
3->C
W->{P+0} // Largeur
H->{P+1} // Hauteur
L->{P+2} // Vitesse de simulation
For(A,0,H-1)
For(B,0,W-1)
{(W+2)*A+B+W+3+L1}->{P+C} // Vu que la liste contient une première ligne et une dernière (idem pour les colonnes) vide...
C++
End
End


Pour le reste du programme j'ai optimisé comme j'ai pu, après pas besoin de conditions avec des soustractions au lieu des "=" par exemple vu qu'il s'agit de l'éditeur qui est déjà bien assez rapide. Pour la routine d'affichage et la routine de simulation là par contre j'ai optimisé au maximum (je vous laisserai seuls juges).
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Messagede Ti64CLi++ » 14 Mai 2016, 11:19

Bon alors après le disp, il faut que tu mettes Disp "Ton message",i (le petit i de racine de -1 ;))
Il ne faut pas que tu stockes le nom de ton appvars dans D mais dans une Str ;)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.5%
 
Messages: 3446
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Game of Life

Messagede Clément.7 » 14 Mai 2016, 15:05

Mais une Str est une constante non ?
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Messagede Ti64CLi++ » 14 Mai 2016, 15:48

Pas forcement, ce sera l'adresse ;)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.5%
 
Messages: 3446
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Game of Life

Messagede Clément.7 » 14 Mai 2016, 18:20

Et pourquoi pas dans D au fait ? Ça écrit correctement selon le nom qui a été spécifié !
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Messagede Ruadh » 17 Mai 2016, 09:00

J'ai aussi programmé le jeu de la vie sur une grille 10x26 : http://ti-pla.net/a542207
J'ai testé pour une grille 8x16, ça prend environ 7 secondes par génération, déjà plus rapide mais encore très lent :(
Avatar de l’utilisateur
RuadhPremium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 37.5%
 
Messages: 38
Inscription: 11 Jan 2016, 23:19
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

PrécédenteSuivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2117 utilisateurs:
>2100 invités
>11 membres
>6 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)