by loko » 19 Sep 2007, 20:09
Yop, salut a tous

je vous laisse le soin d'optimiser ce qui est en dehors de la boucle, moi ce qui m'interresse, c'est la rapiditée d'execution

Derniere optimisation de la boucle et mise en ligne

(heu des que l'admin aura accepté mon inscription ^^)
1)au fait pourquoi pas de goto dans les while ?
2)le point d'exclamation symbolise le signe "n'est pas egal à"
:ClrHome
:5-A:0-k
:A-G:0-Q
:1-Z:1-Y
:ClrAllLists
:{9,17}-dim([A]
:Fill(0,[A]
:50-dim(L1
:50-dim(L2
:Fill(3,L1
:Fill(3,L2
:2-D
:
:While K!=105
:getkey-K
:
:If K!=0
:Then
:If K=24 and D!=2:1-D
:If K=26 and D!=1:2-D
:If K=25 and D!=4:3-D
:If K=34 and D!=3:4-D
:End
:
:If D=1:L2(1)-1-L2(1)
:If D=2:L2(1)+1-L2(1)
:If D=3:L1(1)-1-L1(1)
:If D=4:L1(1)+1-L1(1)
:
:If L1(1)=0 or L1(1)=9 or L2(1)=0 or L2(1)=17:Goto 99
:If [A](L1(1),L2(1))=1:Goto 99
:1-[A](L1(1),L2(1))
:
:If Q!=1
:Then
:Randint(2,15-Z
:Randint(2,7-Y
:1-Q
:If [A](Y,Z)=1:0-Q
:If Q=1:Output(Y,Z,"X"
:End
:
:If L1(1)=Y and L2(1)=Z
:Then
:A+1-A
:0-Q
:End
:
:L1(1)-L1(G)
:L2(1)-L2(G)
:Output(L1(G),L2(G)," "
:G-1-G
:If G=1:A-G:Output(L1(G+1),L2(G+1),"*
:0-[A](L1(G),L2(G))
:
:
:End
:
:Lbl 99
:
:ClrAllLists
:{1,1}-dim([A]

isp "PERDU

ause
:ClrHome

isp "

isp "SCORE

isp A

isp "

isp "

isp "CREATED BY LOKO

ause
:ClrHome
:Output(1,1,"
supprimez le code dans la condition If G=1 et rajoutez la ligne que j'ai mis en rouge

Voila le code a supprimer:
- Code: Select all
:If G=1
:Then
:Output(L1(A),L2(A)," "
:0-[A](L1(A),L2(A))
:Output(L1(G),L2(G),"*
:A-G
:End
Au fait, y a t'il une fonction qui permet d'effacer completement une matrice ?
Ps, il reste un petit bug dont je n'ai pas reussit a trouver l'origine, quand un x apparait sur la case 3,3 ou qu'un X y apparait, il disparait peu apres :/ bon ce n'est pas tres genant si on sais ou retrouver le X mais ça fait laid ^^