:degré
:0->K:2->H:50->I:I->J
:entaleat(1,2->H
:0->Ymin
:10->Ymax
:0->Xmin
:Ymax->Xmax
:AxesNAff
:EffDessin
:For(A,.4,1.4,.1
:Ligne(1,A,2,A
:Ligne(8,A,9,A
:End
:Horizontale .4
:Horizontale .1
:SauveImage Img1
:Lbl 1
:45->[theta]
:7->V
:H-2ent(H/2)+1->H
:If H:Then
:2->S:2.7->N:10->O: .3->P
:End
:If H=2:Then
:8->S:7.3->N:0->O: -.3->P
:End
:While K [différent de] 105
:codeTouche->K
:If K=25 et [theta]<90:Then:[theta]+1->[theta]:EffDessin:End
:If K=34 et [theta]>0:Then:[theta]-1->[theta]:EffDessin:End
:RappelImage Img1
:Texte(1,5,"ANGLE:
:Texte(1,30," "
:Texte(1,30,[theta]
:Texte(1,60,"J1:
:Texte(1,70," "
:Texte(1,70,I
:Texte(9,60,"J2:
:Texte(9,70," "
:Texte(9,70,J
:If H=1
:Ligne(S,1.4,S+cos([theta]),1.4+sin([theta]
:If H=2
:Ligne(S,1.4,S-cos([theta]),1.4+sin([theta]
:End
:0->K
:While K[différent de]105
:codeTouche->K
:If K=25 et V<15
:V+1->V
:If K=34 et V>0
:V-1->V
:Texte(9,5,"FORCE:
:Texte(9,25," "
:Texte(9,30,V
:End
:For(X,N,O,P
:-4.9(X-2.7)²/(V²(cos([theta])²))+(X-2.7)tan([theta])+1.4+sin([theta]->Y
:Pt-On(X,Y
:If X[supérieur ou égal]8 et X[inférieur ou égal]9 et Y[inférieur ou égal]1.4:Then:J-5->J:Goto 2:End
:If X[supérieur ou égal]1 et X[inférieur ou égal]2 et Y[inférieur ou égal]1.4:Then:I-5->I:Goto 2:End
:End
:Lbl 2
:If I=0:Then:Texte(31,20,"LE JOUEUR 2 GAGNE!":Stop:End
:If J=0:Then:Texte(31,20,"LE JOUEUR 1 GAGNE!":Stop:End
:0->K
:Pause
:EffDessin
:Goto1
c'est le premier qui tue l'autre qui gagne 
:Texte(1,5,"ANGLE:
:Texte(1,30,[theta]," " //
:Texte(1,60,"J1:
:Texte(1,70,I," " //
:Texte(9,60,"J2:
:Texte(9,70,J," " //

:degré
:50->I:I->J:EffvarWEffvarR:45->N:N->0:7->P:7->Q
:entaleat(1,2->H
:entaleat(5,20->D
:entaleat(74,89->H
:AxesNAff
:EffDessin
:0->Ymin
:62->Ymax
:0->Xmin
:94->Xmax
:Menu("FORME DU TERRAIN","PLAT",0,"(PRESQUE) PLAT",A,"COLLINE",B,"MONTAGNE",C
:Lbl 0
:0->M:-1->C
:Goto D
:Lbl A
:.2->M:18->C
:Goto D
:Lbl B
:.4->M:37->C
:Goto D
:Lbl C
:.7->M:65->C
:Lbl D
:Effecr
:Disp "DENIVELE TERRAIN","(ENTRE 1 ET 15)
:Input "",B
:If B<1:1->B
:If B>15:15->B
:EffDessin
:For(Z,1,47
:entaleat(1,B->L
:Ligne(Z,0,Z,MZ+L
:If Z [supérieur ou égal à]D et Z[inférieur ou égal à]D+5 et MZ+L+4>W
:MZ+L+4->W
:End
:For(Z,47,94
:entAleat(1,B->L
:Ligne(Z,0,Z,C+B-MZ-L
:If Z [supérieur ou égal à]E et Z[inférieur ou égal à]E+5 et C+B-MZ-L+4>R
:C+B-MZ-L+4
:For(A,W-4,W
:Ligne(D,A,D+5,A
:End
:For(A,R-4,R
:Ligne(E,A,E+5,A
:End
:SauveImage Img1
:Lbl 1
:H-2ent(H/2)+1->H
:If H:Then
:0->K
:N+(O-N)(H=2->[theta]
:P+(Q-P)(H=2->V
:entAleat(-3,3->F
:Effdessin
:RappelImage Img1
:While K [différent de] 105
:codeTouche->K
:[theta]+2(K=25 et [theta]<90)-2(K=34 et [theta]>1->[theta]
:If K et K [différent de]105:Then
:If H=1
:Texte(ent(62-W-5),D+6," "
:If H=2
:Texte(ent(62-R-5),E-4," "
:0->K:End
:Texte(1,5,"ANGLE:",[theta]," "
:Texte(1,60,"J1:",I," "
:Ligne(70,58,70+I/3,58
:Texte(9,60,"J2:",J," "
:Ligne(70,52,70+J/3,52
:Texte(1,5,"Vent",F," "
:Ligne(50,59,50+2F,59
:Ligne(50+2F,59,47(F>0)+50(F=0)+53(F<0)+2F,62
:Ligne(50+2F,59,47(F>0)+50(F=0)+53(F<0)+2F,56
:If H=1
:Ligne(D+5,W,D+6+4cos([theta]),W+4sin([theta]
:If H=2
:Ligne(E,R,E-1-4cos([theta]),R+4sin([theta]
:End
:If H=1
:[theta]->N
:If H=2
:[theta]->O
:0->K
:While K[différent de]105
:codeTouche->K
:V+(K=25 et V<15)-(K=34 et V>4)->V
:Texte(13,5,"FORCE:",V," "
:End
:If H=1
:V->P
:If H=2
:V->Q
:For(M,0,94,3
:PxlOff(0,M
:Texte(1,M" "
:Texte(7,M," "
:Texte(13,M," "
:End
:D+5+(89-E-D)(H=2->T
:For(X,T,Xmax
:ent(-4.9(X-T)²/(8(V+F-2F(H=2))²(cos([theta])²))+(X-T)tan([theta])+W+(R-W)(H=2)+sin([theta]->Y
:If Y<0:Goto 2
:If Y>0 et Y<62 et X[différent de]94 et X>T+5
:Then
:If pxl-Test(62-Y,X+(93-2X)(H=2
:Goto 2
:Pxl-On(62-Y,X+(93-2X)(H=2
:End:End
:End
:Lbl 2
:If H=2 et X[supérieur ou égal à]94-D-5 et X[inférieur ou égal à]94-D et Y[inférieur ou égal à]W et Y[supérieur ou égal à]W-4
:I-5->I
:If H=1 et X[supérieur ou égal à]E et X[inférieur ou égal à]E+5 et Y[inférieur ou égal à]R et Y[supérieur ou égal à]R-4
:I-5->I
:If non(I ou non(J:Then:Texte(31,20,"LE JOUEUR",H,"GAGNE!":Stop:End
:Pause
:Goto1

)

:Menu("FORME DU TERRAIN","PLAT",0,"(PRESQUE) PLAT",A,"COLLINE",B,"MONTAGNE",C
:Lbl 0
:0->M:-1->C //à transformer en :Effvar M-1->C //ici "-" = [(-)]
:Goto D
SauveImage Img1
:Lbl 1
:H-2ent(H/2)+1->H
:If H:Then
:0->K //à suprimer
:N+(O-N)(H=2->[theta] //à remplacer par :effvar KN+(O-N)(H=2->[théta]
:P+(Q-P)(H=2->V
:entAleat(-3,3->F
While K [différent de] 105
:codeTouche->K
:[theta]+2(K=25 et [theta]<90)-2(K=34 et [theta]>1->[theta]
:If K et K [différent de]105:Then
:If H=1
:Texte(ent(62-W-5),D+6," "
:If H=2
:Texte(ent(62-R-5),E-4," "
:0->K:End
While K [différent de] 105
:codeTouche->K
:[theta]+2(K=25 et [theta]<90)-2(K=34 et [theta]>1->[theta]
:If K et K [différent de]105:Then
:effvar KIf H=1
:Texte(ent(62-W-5),D+6," "
:If H=2
:Texte(ent(62-R-5),E-4," "
:End
:Ligne(50+2F,59,47(F>0)+50(F=0)+53(F<0)+2F,62 //remplacer "(F=0)" par "non(F)
:Ligne(50+2F,59,47(F>0)+50(F=0)+53(F<0)+2F,56 //idem
0->K //à supprimer
:While K[différent de]105 //à remplacer pas :effvar KWhile K[différent de]105
:codeTouche->K
:V+(K=25 et V<15)-(K=34 et V>4)->V //parenthèse avant le sto à suprimer
:Texte(13,5,"FORCE:",V," "
:End
