Gamme TI-82
Partager sur Facebook Fil RSS Imprimer la page
Cacher les résultats

Résultat de la recherche



Poster un nouveau sujet Poster une réponse
(4) Bataille navale
Auteur Message
Belvar



Autorisation : Membre
Nb de messages : 57
Inscrit le : Lun 09 Fév 2009, 15:46
Posté le : Lun 09 Fév 2009, 16:55   Citer 

Le quatrième programme est une bataille navale. Il y a un programme pour le mode un joueur et un autre pour le mode 2 joueurs. Le bémol est que chaque programme fait environ 1 450 octet donc est assez volumineux...

Le jeu consiste à couler tout les bateaux adverses avant que les siens ne soient coulées. Pour envoyer un missille, il faut entrer les valeurs X(abssices) et Y(ordonées) de là où on veut tirer. Pareil pour définir la position des bateaux. Il faut définir le point de départ et dire si le bateau est horizontal ou vertical puis le programme entrera le reste du bateau. il ya a un bateau a 2 cases, un a 3, un a 4 et un a 5.
Le jeu se déroule sur une grille de 10*10.

Voici les codes :
Bataille 1 joueur (peut d'intérêt car l'adversaire tire des missiles aléatoirement.)


Code
ClrDraw:ClrHome:0→Xmin:10→Xmax:–10→Ymin
0→Ymax
0→U:0→V:1→B:0→I:0→θ:1→J:0→C:0→M
0→X:0→Y
{10,10}→dim([J]
{10,10}→dim([I]
Fill(0,[I]
Fill(0,[J]
Output(2,4,"BATTAILLE        NAVALE
Output(4,3,"PAR BELVAR
Output(6,4,"1 JOUEUR
Output(8,3,"PRESS ENTER
Pause :ClrHome
Output(2,4,"CHARGEMENT
Output(3,3,"DES  BATEAUX
Output(4,4,"ADVERSES...
For(I,1,4):Lbl 71
randInt(2,10)→V
randInt(2,10)→U
randInt(0,1)→H
If H=1:0→G
If H=0:1→G
If V>10-(1+B)*G or U>10-(B+1)*H:Goto 71
For(θ,–1,B+1)
If [J](V+θ*G,U+θ*H)=1:Goto 71
End
1→[J](V,U)
For(θ,1,B)
1→[J](V+θ*G,U+θ*H)
End:B+1→B:End
For(θ,1,10
Horizontal –θ
Vertical θ:End
StorePic Pic9
Pause :ClrHome
Output(1,2,"POSITION DES    BATEAUX ALLIES :"
Pause :Lbl 22
1→B:For(θ,1,4)
Lbl 65:ClrHome
Output(1,3,"BATEAU":Output(1,10,θ):Disp " "
Input "X :",X
Input "Y :",Y
If [I](Y,X)=1:Then
Output(5,1,"DEJA UN BATEAU LA
Pause
Goto 65:End
Menu("BATEAU","HORIZONTAL",H,"VERTICAL",V)
Lbl H:0→G:1→H
Goto 3
Lbl V:1→G:0→H
Lbl 3
If X>10 or Y>10:Then
Output(5,1,"CA VA DEPASSER
Pause
Goto 65:End
1→[I](Y,X)
For(E,0,1,0.1
Line(X,–Y+E,X-1,–Y+E):End
1→I:For(I,1,B)
1→[I](Y+I*G,X+I*H)
For(E,0,1,0.1
Line(X+I*H,–Y-(I*G)+E,(X+1*H)-1,–Y-(I*G)+E
End:End:B+1→B:End
StorePic Pic0
Lbl 0
If J=1:Goto 10
If J=2:Goto 20
Lbl 10:ClrDraw
RecallPic Pic9:Pause :ClrHome
Input "X:",X
Input "Y:",Y
If X>10 or Y>10:Then
Output(3,1,"PAS PLUS GRAND  QUE 10
Goto 10:End
If [J](Y,X)=2 or [J](Y,X)=3:Then
Output(3,1,"DEJA PROPOSE
Goto 10:End
If [J](Y,X)=1:Goto 66
Line(X,–Y,X-1,–Y+1)
Line(X-1,–Y,X,–Y+1
2→[J](Y,X)
StorePic Pic9
2→J:Pause :Goto 0:Lbl 66:ClrHome
Output(1,1,"TOUCHE
0→θ
For(θ,0,1,0.1
Line(X,–Y+θ,X-1,–Y+θ):End
C+1→C
If C=14:Goto G
3→[J](Y,X)
StorePic Pic9
2→J:Pause :Goto 0:Lbl 20
ClrDraw
RecallPic Pic0
Lbl 99
randInt(1,10)→Y
randInt(1,10)→X
If [I](Y,X)=3:Goto 99
If [I](Y,X)=1:Then
3→[I](Y,X)
M+1→M
If M=14:Goto P
For(θ,0,1,0.1)
Pt-Off(X-θ,–Y+θ:Pt-Off(X-1+θ,–Y+θ
End:End
If [I](Y,X)=2:Goto 99
If [I](Y,X)=0:Then
2→[I](Y,X)
Line(X,–Y,X-1,–Y+1)
Line(X-1,–Y,X,–Y+1):End:1→J
StorePic Pic0
Pause :Goto 0
Lbl G:ClrHome
Output(2,2,"BRAVO, TU A COULE TOUS LES BATEAUX ADVERSES
Pause :ClrHome:Stop
Lbl P:ClrHome
Output(2,2,"PERDU, L.ENNEMI A COULE TES BATEAUX
Pause :ClrHome:Stop



Le mode deux joueurs :

Code
ClrDraw
ClrHome
0→Xmin
10→Xmax
–10→Ymin
0→Ymax
0→U:0→V:1→B:0→I:0→θ:1→J:0→C:0→M
0→X:0→Y
{10,10}→dim([J]
{10,10}→dim([I]
Fill(0,[I]
Fill(0,[J]
Output(2,5,"BATTAILLE        NAVALE
Output(5,5,"2 JOUEURS
Output(7,4,"PRESS ENTER
Pause
ClrHome
Output(1,2,"JOUEUR 1, ENTRE TON NOM :
Disp " "," "
Input "NOM :",Str1
ClrHome
Output(1,2,"JOUEUR 2, ENTRE TON NOM :
Disp " "," "
Input "NOM :",Str2
ClrHome
For(θ,0,10
Horizontal –θ
Vertical θ
End
StorePic Pic9
StorePic Pic0
Pause
Lbl 70
ClrDraw
RecallPic Pic9
ClrHome
Output(1,2,"POSITION DES    BATEAUX DE
If J=1:Output(3,2,Str1
If J=2:Output(3,2,Str2
Pause
Lbl 22
1→B
For(θ,1,4)
Lbl 65
ClrHome
Output(1,3,"BATEAU":Output(1,10,θ)
Disp " "
Input "X :",X
Input "Y :",Y
If [I](Y,X)=1 and J=2 or [J](Y,X)=1 and J=1:Then
Output(5,1,"DEJA UN BATEAU  LA
Pause
Goto 65:End

Menu("BATEAU","HORIZONTAL",H,"VERTICAL",V)
Lbl H:0→G:1→H
Goto 3
Lbl V:1→G:0→H
Lbl 3
If J=2:1→[I](Y,X)
If J=1:1→[J](Y,X)
For(E,0,1,0.1
Line(X,–Y+E,X-1,–Y+E)
End

1→I
For(I,1,B)
If J=2:1→[I](Y+I*G,X+I*H)
If J=1:1→[J](Y+I*G,X+I*H)
For(E,0,1,0.1
Line(X+I*H,–Y-(I*G)+E,(X+1*H)-1,–Y-(I*G)+E
End

End
B+1→B
End
If J=1:Then
2→J:Goto 70
Else
ClrDraw
RecallPic Pic9
1→J
End
Lbl 0
ClrDraw
ClrHome
Output(2,2,"TOUR
Output(3,2,"DE
If J=1:Output(4,2,Str1
If J=2:Output(4,2,Str2
Pause :ClrHome
Lbl 10
ClrDraw
If J=1:RecallPic Pic9
If J=2:RecallPic Pic0
Pause
Output(4,1,"CASES TOUCHEES :
If J=1:Output(5,8,M
If J=2:Output(5,8,C
Input "X:",X
Input "Y:",Y
If X>10 or Y>10:Then
Output(3,1,"PAS PLUS GRAND  QUE 10
Goto 10:End
If [J](Y,X)=2 and J=2 or [J](Y,X)=3 and J=2 or J=1 and [I](Y,X)=2 or J=1 and [I](Y,X)=3:Then
Output(3,1,"DEJA PROPOSE
Pause :ClrHome
Goto 10:End
If [J](Y,X)=1 and J=2 or [I](Y,X) and J=1:Goto 66
Line(X,–Y,X-1,–Y+1)
Line(X-1,–Y,X,–Y+1
If J=2:2→[J](Y,X)
If J=1:2→[I](Y,X)
If J=1:StorePic Pic9
If J=2:StorePic Pic0
If J=1:Then:2→J:Pause :Goto 0:End
If J=2:1→J
Pause
Goto 0

Lbl 66
ClrHome
For(θ,0,1,0.1
Line(X,–Y+θ,X-1,–Y+θ)
End
If J=1:C+1→C
If J=2:M+1→M
If C=14 or M=14:Goto G
If J=2:3→[J](Y,X)
If J=1:3→[I](Y,X)
If J=1:StorePic Pic9
If J=2:StorePic Pic0
If J=1:Then
2→J:Pause
Goto 0:End
If J=2:1→J
Pause
Goto 0

Lbl G
If C=14:Output(2,2,Str1
If M=14:Output(2,2,Str2
Output(3,2,"A GAGNE
Pause :ClrHome
Output(1,1,"



Et les deux modes en fichier .83p :

http://www.megaupload.com/?d=I2JGF6XX

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2016 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink
 

Site hébergé par Free Page sous licence creative commons Page validée par le W3C (XHTML 1.0 Transitional) Feuille de style validée par le W3C Flux RSS 2.0 valide Page étiquetée par l'ICRA Page testée par Ocawa