π
<-

Code snake

Re: Code snake

Unread postby mp35 » 17 Sep 2009, 20:11

Ok j'ai compris !!
Ca me fais une belle optimisation tout ca. MCI !!
:D:
Sinon j'ai réfléchie un peu et si je veux pouvoir effacé le corp du snake au fur et a mesure qu'il avance il va me faloire utilisé les matrice si je ne me trompe pas.Car si j'efface les coordonné de A,B c'est la tête que j'efface.Jme trompe ?
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby jacques » 17 Sep 2009, 20:36

Non, en fait il faudrait que tu crées des listes pour stocker les coordonnées (une liste pour les abscisses, et une pour les ordonnées).
Sublime Chevalier Elu des TI

Venez visiter mon site sur les TI : Ti Softwares !!
Jetez un coup d'œil à mes programmes pour TI !!

Vous voulez faire des super programmes pour votre TI z80 ? Alors apprenez l'Axe Parser !!
User avatar
jacques
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 14.9%
 
Posts: 2057
Images: 0
Joined: 25 Aug 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: prépa PSI

Re: Code snake

Unread postby mp35 » 17 Sep 2009, 21:51

Bon après une heure d'essei j'arrive a ca :
Code: Select all
:EffDessin
:0-N
:0-L
:0-E
:0-F
:0-K
:40-A
:30-B
:repeat K=105
:N+1-N
:A+E-A
:B+F-B
:Pxl-On(B,A
:codeTouche-K
:If K diferent de 0
:Then
:(K=26)-(K=24)-E
:(K=34)-(K=25)-F
:Chaine(L1,{A})-L1
:Chaine(L2,{B})-L2
:Dim(L1)-U
:Dim(L2)-V
:L+1-L
:End
:If N=10
:Then
:L+1-L
:Pxl-Off(L1(U),L2(V))
:End
:End


Résultat le prm lag et surtout sa ne séface pas.Bref je suis noyé
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby tama » 17 Sep 2009, 23:22

hmm c'est quoi L et N ?
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

Re: Code snake

Unread postby mp35 » 18 Sep 2009, 07:44

Alors le "L" je ne m'en sert pas enfaite .:S
Et le N c'est parce que quand je démarais
le snake je soupçonnai le programme d'effacé la tête dès le débuts,tandis que la sa me laisse le temps d'avancé un peu sans qu'il m'efface la tête.(Mais sa ca marche pas).
Je connaissait pas trop les liste j'ai essayé des truc mais rien de très convaincant.
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby Bisam » 18 Sep 2009, 18:00

L'idée pour la liste est de stocker temporairement toutes les positions occupées par le corps de ton serpent (en plus ça te sera utile pour détecter les collisions).

Au départ, si tu fais un serpent de longueur 10, tu enregistres la position de chaque point du serpent dans 2 listes (une pour les abscisses et une pour les ordonnées) comme on te l'a conseillé. Ensuite, à chaque déplacement, il faut :
1) ajouter les nouvelles coordonnées au début de la liste (puisque c'est la tête, c'est le plus logique)
2) afficher le nouveau point
3) effacer le point de la queue
4) raccourcir la liste en éliminant le point de la queue que l'on vient d'effacer.

Si tu veux ensuite agrandir ton serpent, il te suffit de sauter les 2 dernières étapes.
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: Code snake

Unread postby tama » 18 Sep 2009, 20:30

quelques précisions pour t'aider :
- pour augmenter toutes les coordonnées d'une liste, pas besoin de faire une boucle, il suffit juste de faire 1+liste-liste pour augmenter tous les éléments de 1
Par exemple, 1+L1 - L1 augmentera automatiquement tous les éléments de L1 de 1

- Pour effacer le point de la queue de la liste, il suffit de
1. récupérer le nombre d'éléments d de la liste avec dim()
2. mettre une nouvelle "taille" pour la liste à d-1

Par exemple :
{1,2,3,4,5-L1
dim(L1-D // D=5
D-1-dim(L1 //L1 = {1,2,3,4}
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

Re: Code snake

Unread postby mp35 » 18 Sep 2009, 23:37

Ok merci jvais essayer de mettre en pratique tout ca :): .
Mais en attendant j'ai testé de faire quelques niveaux mais je rencontre un problème:

Ma fonction "ligne(" marche vraiment bizarrement pour vous donner un exemple :

Image
Image

Sauf que moi ba se va rien m'afficher on ne voit pas la ligne.
on m'as dit Ligne(X1,Y1,X2,Y2
X1=coordonné X de point de départ
Y1=coordonné Y de point de départ
X2=coordonné X de d'arrivé
Y1=coordonné Y de d'arrivé

Mais cela ne fonctionne vraiment pas.Les coordonné ne réponde pas au bon endroit.
De même pour la fonction horizontale.
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby mp35 » 18 Sep 2009, 23:38

Ok merci jvais essayer de mettre en pratique tout ca :): .
Mais en attendant j'ai testé de faire quelques niveaux mais je rencontre un problème:

Ma fonction "ligne(" marche vraiment bizarrement pour vous donner un exemple :

Image
Image

Sauf que moi ba se va rien m'afficher on ne voit pas la ligne.
on m'as dit Ligne(X1,Y1,X2,Y2
X1=coordonné X de point de départ
Y1=coordonné Y de point de départ
X2=coordonné X de d'arrivé
Y1=coordonné Y de d'arrivé

Mais cela ne fonctionne vraiment pas.Les coordonné ne réponde pas au bon endroit.
De même pour la fonction horizontale.
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby Marco » 18 Sep 2009, 23:41

Normal, tu mets des coordonnées en pixel alors que ce sont des coordonnées en point qui sont demandées. Du coup, le trait est en dehors de la fenêtre (WINDOW) et tu ne le vois pas.
Pour avoir ce que tu as mis plus haut, il faut mettre dans ta fenêtre :
Xmin = 0
Xmax = 94
Ymin = -62
Ymax = 0

Ne pas oublier que les Y sont alors en négatif pour les points.

EDIT : pour modération, message posté 2 fois. ^
Image
User avatar
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 27.8%
 
Posts: 1259
Joined: 22 Mar 2009, 00:00
Location: 78
Gender: Male
Calculator(s):
MyCalcs profile

PreviousNext

Return to TI-Basic

Who is online

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

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
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.
1718 utilisateurs:
>1664 invités
>46 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
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)