Paulo1026 le 08/04/2016 à 14:30
Edit:Je n'avais pas vu qu'il y avait un sujet dédier pour l'aide donc je reposte ici.
Voilà dans mon programme j'aurais besoin que l'écran défile vers le bas en gardant les lignes actuelles sauf la dernière
Mon programme se présente comme ça pour l'instant (j'expliquerais ultérieurement quel sera le but du jeu, etc ,mais pour l'instant je bloque

)
Code
EffEcr
9->S
Lbl 1
If S=1:Goto 2
S-1->S
Lbl 2
Output(S,4,entAléat(0,1,4
Output(S,4,"/
Output(S,12,"/
Output(S,8,entAléat(0,1
Output(S,6,entAléat(0,1
Output(S,10,entAléat(0,1
Goto 1
Si vous pouviez trouver aussi comment éviter ces lignes là:
Code
Output(S,8,entAléat(0,1
Output(S,6,entAléat(0,1
Output(S,10,entAléat(0,1
Mingerton le 10/04/2016 à 13:36
J'ai regardé un peu ce que faisait ton programme. Un screen pour qu'on soit d'accord là dessus :
Donc ce que tu veux c'est que l'animation se fasse dans l'autre sens ? Qu'il parte du haut pour aller vers le bas et que la dernière ligne change (ici c'ets la première qui change). C'est ce que je comprends de ton premier message.
L'idée va être de créer des chaînes de caractères, comme ca tu pourras les déplacer comme tu veux après, et faire un défilement dans le même style que le mien. Donc ce que j'imagine c'est un morceau de code pour créer une chaîne de 0 et de 1 aléatoire (boucle for, c'est rapide), on stocke cette chaîne (ou on la garde dans Ans, mais tu vois le principe), on la "fait tomber" avec un code de défilement, et retour à la case départ pour la 2e chaîne, ...
Paulo1026 le 11/04/2016 à 19:41
Oui mon programme fait bien ça,
mais je pense que pour que vous compreniez il faut que je vous explique comment va être mon programme au final (c'est un remake d'un ancien programme du forum qui a malheureusement disparu). Donc dans ce programme le but va être de diriger un personnage pour qu'il évite tous les 1 (et passe donc sur les 0)sans sortir des limites (/) donc pour cela il faut un défilement de ce type:
Image manquante
Donc la ligne 8 passe à la place de la 7 pareil pour la 7 avec la 6 et ainsi de suite jusqu'à la 1 qui disparait et ça recommence à l'infini.
Donc je m'étais trompé dsl
mon code aurait du ressembler a ça :
Code
EffEcr
0->S
Lbl 1
If S=8:Goto 2
S+1->S
Lbl 2
Output(S,4,entAléat(0,1,4
Output(S,4,"/
Output(S,12,"/
Output(S,8,entAléat(0,1
Output(S,6,entAléat(0,1
Output(S,10,entAléat(0,1
Goto 1
J'avais aussi trouver une autre façon mais pas du tout optimisée (le programme n'est pas fini et ne peux pas encore fonctionner).
Code
Menu("Difficultée","Facile",10,"Moyen",11,"Difficile",12,"Quitter",13
Lbl 10
W->1
Goto 0
Lbl 11
W->2
Goto 0
Lbl 12
W->3
Lbl 0
EffEcr
0->S
Lbl 1
1->Y
6->X
Output(Y,X,"V
If Y=5:Goto 2
Y+1->Y
V->-1
V+1->V
Lbl 2
If A=2 ou A=3: Goto 55
entAléat(0,1->A
entAléat(0,1->B
entAléat(0,1->C
entAléat(0,1->D
entAléat(0,1->E
If W=1 et A+B+C+D+E>1:Goto 1
If W=2 et A+B+C+D+E>3:Goto 1
If W=3 et A+B+C+D+E>4:Goto 1
Lbl 55
If F=2 ou F=3:Goto 97
entAléat(0,1->F
entAléat(0,1->G
entAléat(0,1->H
entAléat(0,1->I
entAléat(0,1->J
If W=1 et F+G+H+I+J>1:Goto 55
If W=2 et F+G+H+I+J>3:Goto 55
If W=4 et F+G+H+I+J>4:Goto 55
Lbl 97
If K=2 ou K=3:Goto 96
entAléat(0,1->K
entAléat(0,1->L
entAléat(0,1->M
entAléat(0,1->N
entAléat(0,1->O
If W=1 et K+L+M+N+O>1:Goto 97
If W=2 et K+L+M+N+O>3:Goto 97
If W=3 et K+L+M+N+O>4:Goto 97
Lbl 96
If P=2 ou P=3:Goto 95
entAléat(0,1->P
entAléat(0,1->Q
entAléat(0,1->R
entAléat(0,1->T
entAléat(0,1->U
If W=1 P+Q+R+T+U>1:Goto 96
If W=2 P+Q+R+T+U>3:Goto 96
If W=3 P+Q+R+T+U>4:Goto 96
Lbl 95
Lbl 3
If A=2 ou A=3:Goto 99
Output(S,4,A
Output(S,5,B
Output(S,6,C
Output(S,7,D
Output(S,8,E
If S<8:S+1->S
A+2->A
If V=1:Goto 99
Goto 1
Lbl 99
If F=2 ou F=3:Goto 94
Output(S,4,F
Output(S,5,G
Output(S,6,H
Output(S,7,I
Output(S,8,J
If S<8:S+1->S
F+2->F
If V=1:Goto 94
Goto 1
Lbl 94
If K=2 ou K=3:Goto 93
Output(S,4,K
Output(S,5,L
Output(S,6,M
Output(S,7,N
Output(S,8,O
If S<8:S+1->S
K+2->K
If V=1:Goto 93
Goto 1
Lbl 93
If P=2 ou P=3:Goto 92
Output(S,4,P
Output(S,5,Q
Output(S,6,R
Output(S,7,T
Output(S,8,U
If S<8:S+1->S
P+2->P
Lbl 92
If P=2 ou P=3:
S-1->S
P-2->P
A-2->A
F-2->F
K-2->K
1->V
If V=1:Goto 3
Goto 2
Lbl 13
Stop
Bon voilà ce code là est loin d'être fini et de toute façon il est trop lent mais faut pas oublier que je suis un noob car j'ai oublié de préciser mais je n'ai jamais lu de tutos et j'ai appris en recopiant les programmes des autres.
Donc j'ai essayé de comprendre les chaînes grâce à ce
tuto mais j'ai pas trop compris comment toi tu voulais faire

Mingerton le 11/04/2016 à 22:44
Ok, c'est à peut près ce que j'avais compris. Mon idée est de créer des chaînes de 0 et de 1 aléatoires et de les faire avancer toutes en même temps. POur une chaîne aléatoire de 0 et de 1 :
Code
"/
For(I,1,7
If randInt(0,1
Then
Ans+"1
Else
Ans+"0
End
End
Ans+"/
(un peu lent à mon goût malheureusement, mais on en est pas encore à l'optimisation)
Une fois que t'as ca, tu peux stocker, ou faire défiler direct. Pas le temps de coder ca maintenant de mon côté, mais si quelqu'un comprend ce que je veux faire...

Paulo1026 le 15/04/2016 à 22:17
Salut ,
j'ai un problème dans mon nouveau programme mais je ne vois pas lequel:
Code
If A=0
Then
0->X:3->Y
If A=1
Then
1.5->X:2.5->Y
If A=2
Then
2.5->X:1.5->Y
A=3
Then
3->X:0->Y
End
(le code n'est pas complet)
Voilà dans mon code même si A est = à une bonne valeur X et Y sont toujours = a 0.(c'est le seul problème et si il est résolu je peux poster mon programme

).
Merci d'avance pour votre réponse.
Mingerton le 16/04/2016 à 13:27
Tu as oublié de fermer tes conditions. La syntaxe est
Code
If [condition]
Then
[consequences]
End
Or ici tu n'as qu'un seul end qui se réfère à la dernière condition ouverte, et comme le programme ferme automatiquement les autres conditions, ça fait que toutes les conditions dépendent du résultat de la première.
En bref, ferme tes conditions directement après leur conséquence
