Opti-Défi n°2 : Snake
48 posts
• Page 2 of 5 • 1, 2, 3, 4, 5
Re: Opti-Défi n°2 : Snake
Moi, le mien s'appelle SERPENT (même nombre de caractères que AVEMDR1)
Alors, au départ le serpent ne doit pas forcément appaître complètement ?
@Mathieu : ton serpent d'une case s'allonge pendant ses 4 premiers pas, alors?
Au fait ,j'ai oublié ça : quand le serpent se plante, j'affiche un caractère ("différent") à l'endroit de la collision (optionnel, j'avoue)
et quand j'affiche le score final c'est , par ex :
score:100
Alors, au départ le serpent ne doit pas forcément appaître complètement ?
@Mathieu : ton serpent d'une case s'allonge pendant ses 4 premiers pas, alors?
Au fait ,j'ai oublié ça : quand le serpent se plante, j'affiche un caractère ("différent") à l'endroit de la collision (optionnel, j'avoue)
et quand j'affiche le score final c'est , par ex :
score:100
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 776
- Images: 92
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Opti-Défi n°2 : Snake
@Mathieu : ton serpent d'une case s'allonge pendant ses 4 premiers pas, alors?
Mdr ^^
Oui c'est ça

Tu gaspilles beaucoup d'octets ça te ressemble pas

-
m@thieu41Premium
Niveau 11: LV (Légende Vivante)- Posts: 230
- Joined: 20 Jun 2013, 14:24
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: TS
Re: Opti-Défi n°2 : Snake
@mathieu : -mmm, attends, attends : j'm'échauffe à peine, là ! héhé
Pour vous dire à quel point j'suis long à la détente :
y a un truc encore flou : pendant la partie , c'est bien la taille du serpent qu'on affiche en permanence?... ou le score ?

Pour vous dire à quel point j'suis long à la détente :
y a un truc encore flou : pendant la partie , c'est bien la taille du serpent qu'on affiche en permanence?... ou le score ?

-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 776
- Images: 92
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Opti-Défi n°2 : Snake
On affiche le score! ^^
C'est pour ça que le ré-afficher à la fin...
C'est pour ça que le ré-afficher à la fin...

-
m@thieu41Premium
Niveau 11: LV (Légende Vivante)- Posts: 230
- Joined: 20 Jun 2013, 14:24
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: TS
Re: Opti-Défi n°2 : Snake
J'ai raté ce défi ! Bon, de toute façon je n'ai pas trop le temps en ce moment ^^
Pour le prochain, je serais là !
Pour le prochain, je serais là !
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.
Liens utiles:
- Guide: meilleurs programmes & tutoriels - toutes calculatrices
- Guide: programmer en langage C sur TI-83 Premium CE/84+CE
- Groupe Facebook d'entraide autour des études post-bac (prépa, université, IUT...)
Découvre mes programmes et mon site!
-
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 3191
- Images: 37
- Joined: 25 Feb 2013, 16:21
- Location: Toulouse
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingénieur en électronique
- YouTube: Wistaro
- Twitter: Wistaro
- GitHub: Wistaro
Re: Opti-Défi n°2 : Snake
Le défi n'est pas finis tu peux toujours proposer un truc 

-
m@thieu41Premium
Niveau 11: LV (Légende Vivante)- Posts: 230
- Joined: 20 Jun 2013, 14:24
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: TS
Re: Opti-Défi n°2 : Snake
Mouai mais bon x)
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.
Liens utiles:
- Guide: meilleurs programmes & tutoriels - toutes calculatrices
- Guide: programmer en langage C sur TI-83 Premium CE/84+CE
- Groupe Facebook d'entraide autour des études post-bac (prépa, université, IUT...)
Découvre mes programmes et mon site!
-
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 3191
- Images: 37
- Joined: 25 Feb 2013, 16:21
- Location: Toulouse
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingénieur en électronique
- YouTube: Wistaro
- Twitter: Wistaro
- GitHub: Wistaro
Opti-Défi n°2 : Snake
Bon!..j'ai de nouveau planché sur le sujet... voici ma 2ème version du programme (nommé SERPENT) en...306 / 309 octets
http://tiplanet.org/modules/archives/do ... l&id=71184

Show/Hide spoilerAfficher/Masquer le spoiler
ClrHome //efface l'écran
Disp "ØØØØØ //affiche le serpent ( long de 5 cases au départ)
16→Z // nb de colonnes de l'écran
"1+int(Z¯¹(Ans–1→Y1 // calcule la ligne de la position dans Ans
"1+ZfPart(Z¯¹(Ans–1→Y2 // calcule la colonne ...
{2,3,4,5→L1 // positions successives de la queue
8Z→dim(L1 // liste contenant le terrain (128 cases)
DelVar SZ→D //score à 0, Direction=16 (vers le bas)
5→T:1→Q // position de la tête, et de la queue
Lbl Ø
Z–(S>9 // colonne où l'on ...
Output(1,Ans,S // affichera le score
Ans→L1(Ans // marque cet emplacement d'une valeur autre que 0
While L1(Ans // détermine au hasard
randInt(1,8Z // l'emplacement d'une nouvelle denrée
End
Output(Y1,Y2,1 // puis l'affiche
9→L1(Ans // et marque sur le terrain (liste L1)
S+1→S // incrémente le score
Lbl 1
getKey // scrute le clavier
(Ans=26)–(Ans=24)+Z((Ans=34)–(Ans=25 //(gauche:-1 droite: 1 haut: -16 bas: 16)
If Ans:Ans→D // si l'une des flèches appuyées alors nouvelle direction dans D
T+D // va maintenant gérer les bords du terrain (téléporteurs)
Ans–Z(8(D²>1)((Ans>8Z)–(Ans<1))+D(D²=cos(π8¯¹(T–not(D+1→L1(T
Ans→T // mets à jour la position de la tête
Output(Y1,Y2,Ø // et l'affiche
If 9=L1(T // si on tombe sur la denrée
Goto Ø // alors on n'efface pas la queue
Q→W // efface la queue
Output(Y1,Y2,"░ // au moyen d'un espace
L1(Q→Q //nouvelle position de la queue
Ø→L1(W // marque d'un 0 à l'ancienne position
If not(L1(T // la tête a-t-elle heurtée qqchose?
Goto 1 // non? alors on continue
Disp "ØØØØØ //affiche le serpent ( long de 5 cases au départ)
16→Z // nb de colonnes de l'écran
"1+int(Z¯¹(Ans–1→Y1 // calcule la ligne de la position dans Ans
"1+ZfPart(Z¯¹(Ans–1→Y2 // calcule la colonne ...
{2,3,4,5→L1 // positions successives de la queue
8Z→dim(L1 // liste contenant le terrain (128 cases)
DelVar SZ→D //score à 0, Direction=16 (vers le bas)
5→T:1→Q // position de la tête, et de la queue
Lbl Ø
Z–(S>9 // colonne où l'on ...
Output(1,Ans,S // affichera le score
Ans→L1(Ans // marque cet emplacement d'une valeur autre que 0
While L1(Ans // détermine au hasard
randInt(1,8Z // l'emplacement d'une nouvelle denrée
End
Output(Y1,Y2,1 // puis l'affiche
9→L1(Ans // et marque sur le terrain (liste L1)
S+1→S // incrémente le score
Lbl 1
getKey // scrute le clavier
(Ans=26)–(Ans=24)+Z((Ans=34)–(Ans=25 //(gauche:-1 droite: 1 haut: -16 bas: 16)
If Ans:Ans→D // si l'une des flèches appuyées alors nouvelle direction dans D
T+D // va maintenant gérer les bords du terrain (téléporteurs)
Ans–Z(8(D²>1)((Ans>8Z)–(Ans<1))+D(D²=cos(π8¯¹(T–not(D+1→L1(T
Ans→T // mets à jour la position de la tête
Output(Y1,Y2,Ø // et l'affiche
If 9=L1(T // si on tombe sur la denrée
Goto Ø // alors on n'efface pas la queue
Q→W // efface la queue
Output(Y1,Y2,"░ // au moyen d'un espace
L1(Q→Q //nouvelle position de la queue
Ø→L1(W // marque d'un 0 à l'ancienne position
If not(L1(T // la tête a-t-elle heurtée qqchose?
Goto 1 // non? alors on continue
http://tiplanet.org/modules/archives/do ... l&id=71184
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 776
- Images: 92
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Opti-Défi n°2 : Snake
Intéressant 
Sinon, je sais pas si ça pourrait permettre de grapiller quelques ooctets, mais je changerais bien le Lbl 1 : Goto 1 en Repeat not(...
Et si on sait que la condition est fausse au départ, en While L1(T: End

Sinon, je sais pas si ça pourrait permettre de grapiller quelques ooctets, mais je changerais bien le Lbl 1 : Goto 1 en Repeat not(...
Et si on sait que la condition est fausse au départ, en While L1(T: End

-
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 342
- Images: 0
- Joined: 16 Jan 2013, 18:27
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Médecine
Re: Opti-Défi n°2 : Snake
oui, j'y ai songé, mais ce qui m'embête c'est le "goto 0" à l'intérieur de cette boucle
(il aurait fallu une instruction comme "resume" dans certains basic)
en fait , j'ai eu recours à ces LBL GOTO car il y a 2 boucles imbriquées
(j'vais tester quand même...)
EDIT: Bien tenté, TheMachine02 ! car j'ai testé
Hé bien , la Ti l'accepte !
Thanx , TheMachine02, (j'aurais pas osé)
mon programme SERPENT fait maintenant 301 / 304 octets (5 octets grapillés tout de même ! )
ClrHome //efface l'écran
Disp "ØØØØØ //affiche le serpent ( long de 5 cases au départ)
16→Z // nb de colonnes de l'écran
"1+int(Z¯¹(Ans–1→Y1 // calcule la ligne de la position dans Ans
"1+ZfPart(Z¯¹(Ans–1→Y2 // calcule la colonne ...
{2,3,4,5→L1 // positions successives de la queue
8Z→dim(L1 // liste contenant le terrain (128 cases)
DelVar SZ→D //score à 0, Direction=16 (vers le bas)
5→T:1→Q // position de la tête, et de la queue
Lbl Ø
Z–(S>9 // colonne où l'on ...
Output(1,Ans,S // affichera le score
Ans→L1(Ans // marque cet emplacement d'une valeur autre que 0
While L1(Ans // détermine au hasard
randInt(1,8Z // l'emplacement d'une nouvelle denrée
End
Output(Y1,Y2,1 // puis l'affiche
9→L1(Ans // et la marque sur le terrain (liste L1)
S+1→S // incrémente le score
Repeat L1(T // tant que la tête va sur des cases vides (mis à part la denrée)
getKey // scrute le clavier
(Ans=26)–(Ans=24)+Z((Ans=34)–(Ans=25 //(gauche:-1 droite: 1 haut: -16 bas: 16)
If Ans:Ans→D // si l'une des flèches appuyées alors nouvelle direction dans D
T+D // va maintenant gérer les bords du terrain (téléporteurs)
Ans–Z(8(D²>1)((Ans>8Z)–(Ans<1))+D(D²=cos(π8¯¹(T–not(D+1→L1(T
Ans→T // mets à jour la position de la tête
Output(Y1,Y2,Ø // et l'affiche
If 9=L1(T // (exception de la denrée)
Goto Ø // alors on n'efface pas la queue
Q→W // efface la queue
Output(Y1,Y2,"░ // au moyen d'un espace
L1(Q→Q //nouvelle position de la queue
Ø→L1(W // marque d'un 0 à l'ancienne position
End // continue si la tête n'a rien heurté
(il aurait fallu une instruction comme "resume" dans certains basic)
en fait , j'ai eu recours à ces LBL GOTO car il y a 2 boucles imbriquées
(j'vais tester quand même...)

EDIT: Bien tenté, TheMachine02 ! car j'ai testé
- Code: Select all
LBL 1...If not(L1(T
- Code: Select all
Repeat L1(T....End
Hé bien , la Ti l'accepte !

Thanx , TheMachine02, (j'aurais pas osé)

mon programme SERPENT fait maintenant 301 / 304 octets (5 octets grapillés tout de même ! )
ClrHome //efface l'écran
Disp "ØØØØØ //affiche le serpent ( long de 5 cases au départ)
16→Z // nb de colonnes de l'écran
"1+int(Z¯¹(Ans–1→Y1 // calcule la ligne de la position dans Ans
"1+ZfPart(Z¯¹(Ans–1→Y2 // calcule la colonne ...
{2,3,4,5→L1 // positions successives de la queue
8Z→dim(L1 // liste contenant le terrain (128 cases)
DelVar SZ→D //score à 0, Direction=16 (vers le bas)
5→T:1→Q // position de la tête, et de la queue
Lbl Ø
Z–(S>9 // colonne où l'on ...
Output(1,Ans,S // affichera le score
Ans→L1(Ans // marque cet emplacement d'une valeur autre que 0
While L1(Ans // détermine au hasard
randInt(1,8Z // l'emplacement d'une nouvelle denrée
End
Output(Y1,Y2,1 // puis l'affiche
9→L1(Ans // et la marque sur le terrain (liste L1)
S+1→S // incrémente le score
Repeat L1(T // tant que la tête va sur des cases vides (mis à part la denrée)
getKey // scrute le clavier
(Ans=26)–(Ans=24)+Z((Ans=34)–(Ans=25 //(gauche:-1 droite: 1 haut: -16 bas: 16)
If Ans:Ans→D // si l'une des flèches appuyées alors nouvelle direction dans D
T+D // va maintenant gérer les bords du terrain (téléporteurs)
Ans–Z(8(D²>1)((Ans>8Z)–(Ans<1))+D(D²=cos(π8¯¹(T–not(D+1→L1(T
Ans→T // mets à jour la position de la tête
Output(Y1,Y2,Ø // et l'affiche
If 9=L1(T // (exception de la denrée)
Goto Ø // alors on n'efface pas la queue
Q→W // efface la queue
Output(Y1,Y2,"░ // au moyen d'un espace
L1(Q→Q //nouvelle position de la queue
Ø→L1(W // marque d'un 0 à l'ancienne position
End // continue si la tête n'a rien heurté
Last edited by grosged on 09 Jun 2014, 09:33, edited 5 times in total.
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 776
- Images: 92
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
48 posts
• Page 2 of 5 • 1, 2, 3, 4, 5
Who is online
Users browsing this forum: ClaudeBot [spider] and 4 guests