π
<-

Game of Life

Re: Game of Life

Unread postby Clément.7 » 07 May 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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Unread postby Bisam » 08 May 2016, 09:15

L'optimisation proposée par Grosged permet de supprimer plusieurs tests et devrait déjà faire gagner du temps.
Code: Select all
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.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Game of Life

Unread postby Clément.7 » 08 May 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: Select all
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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Unread postby grosged » 08 May 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
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 32.5%
 
Posts: 776
Images: 92
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):
MyCalcs profile

Re: Game of Life

Unread postby Clément.7 » 13 May 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: Select all
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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Unread postby Ti64CLi++ » 14 May 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
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Game of Life

Unread postby Clément.7 » 14 May 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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Unread postby Ti64CLi++ » 14 May 2016, 15:48

Pas forcement, ce sera l'adresse ;)
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Game of Life

Unread postby Clément.7 » 14 May 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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: Game of Life

Unread postby Ruadh » 17 May 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 :(
User avatar
RuadhPremium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 37.5%
 
Posts: 38
Joined: 11 Jan 2016, 23:19
Gender: Not specified
Calculator(s):
MyCalcs profile

PreviousNext

Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 7 guests

-
Search
-
Social TI-Planet
-
Featured topics
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
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
4156 utilisateurs:
>4136 invités
>13 membres
>7 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)