/****** Programme sur TI-80 par Lightness1024! ******** ******* ce programme s'adapte parfaitement aux ******** ******* TI de classes supérieure (avec 2 ou 3 modifs ******** ******* par ci par la) ******** ** toutes les textes encadrés de "/*" ** ** ne sont pas a prendre en considération. ** ** les mots entre "#" remplace des symboles, qu'il ** ** n'est pas possible de représenter avec le bloc note ** ** les caractères "->" correspondent a la touche STO>** ** "#tetha#" correspond a la dernière variable après Z ** ** important tout les X (a part pour les GOTO) sont ** ** signe "multiplication" ** ** date de commencement du programme: 9/10/0 ** * ce programme est un jeu de tir, ou il suffit de rentrer un * * angle, et le coup part. si vous touchez l'adversaire, vous * * gardez la main, si vous perdez, les bonshommes ne chagnent pas * * de place et la main change de joueur * * ce programme requiert 2ko de memoire * * dans le manuel est indiqué comment atteindre les fonctions, * * les instructions, ... dans le glossaire à la fin. * * si jamais vous trouvez un bug, corigez le sur ce fichier avant * * de le recopier, et faites en moi part. www.lightness.go.to * * mon e-mail se trouve sur ce site. * * ici commence, */ CLRHOME /* efface l'ecran */ DISP "" DISP "" DISP " LIGHTNESS1024" DISP " PROGRAMMATO" DISP " 9/10/0" /* affiche une presentation */ PAUSE /* attend appui sur ENTER */ CLRHOME DISP "NOMBRE DE MUNITIO" DSIP "TOTAL" DISP "{1,8}" INPUT F /* demande d'entrée du nombre de munitions du pistolet */ IF F<0 1 ->F /* redimmensionne la variable F, si F est inferieur a 0 */ IF F>9 8 ->F /* " si F est supérieur à 9 ". de cette * * manière le nombre de munitions du pistolet est * * compris entre 1 et 8 */ F ->C F ->P /* enregistre les résultats dans les variables C et P * * C correspond aux nb de munit. du joueur 1; et P celle du 2eme */ INT (F/4) ->D INT (F/4) ->R /* divise le nb de munitoins pistolets par 4, et enregistre * * dans D et R , ce qui correspond aux variables du nb de * * munitions du bazouka pour les 2 joueurs */ CLRHOME CLRDRAW GRIDOFF 0 ->XMIN 63 ->XMAX 1 ->XSCL 0 ->YMIN 47 ->YMAX 1 ->YSCL /* dimensionne le mode graphique a la résolution de l'ecran (64X48) */ FIX 2 0 ->S 0 ->U 0 ->A 0 ->B 0 ->G 0 ->S 0 ->T 1 ->J /* prépare le terrain du programme * * dimensionne les variables, et enrgistre une valeur * * défaut dans chacune d'elle */ LBL H CLRDRAW LINE(1,22,21,0) LINE(42,0,63,22) /* dessiner le décor */ IF T=0 THEN RANDINT(21,43)->Y RANDINT(21,43)->Z /* détermine aléatoirement la position de chaque joueurs si * * ce n'est deja fait ou que le tir précedent a été raté. */ ELSE #theta#->Y END PT-ON(8,Y) PT-ON(7,Y-1) PT-ON(9,Y-1) PT-ON(8,Y-2) PT-ON(8,Y-3) PT-ON(8,Y-4) PT-ON(7,Y-5) PT-ON(9,Y-5) /* dessine le joueur 1 selon la varible Y (trouvée au hasard ci dessus) */ PT-ON(54,Z) PT-ON(53,Z-1) PT-ON(55,Z-1) PT-ON(54,Z-2) PT-ON(54,Z-3) PT-ON(54,Z-4) PT-ON(53,Z-5) PT-ON(55,Z-5) /* dessine le joueur 2 selon Z */ IF J=1 PT-ON(5,5) IF J=2 PT-ON(55,5) PAUSE /* dessine un point sous le joueur actif, et attend un appuis sur ENTER */ IF J=1 THEN /* debut du programme (joueur 1) */ LBL Q CLRHOME IF C#inférieur ou égal à#0 THEN IF D#inférieur ou égal à#0 THEN GOTO X END END /* si le joueur n'a plus de munition sur ces deux armes (création d'un opérateur * * bouléen AND, grace a une imbication de IF) */ DISP "JOUEUR DE GAUCHE" DISP "1:PISTOL",C,"MUNITIONS" DISP "2:BAZOUKA",D,"MUNITIONS" INPUT "ARME?:",B /* enregistre le No de l'arme choisie dans la variable B */ INT B->B IF B#inférieur ou égal à#0 1->B IF B#supérieur ou égal à#3 2->B /* défini un intervalle pour B [1;2] */ CLRHOME DISP "(ANGLE LIMIT=" DISP "{-50;50})" INPUT "ANGLE?:",A CLRHOME IF A#inférieur ou égal à#-50 -50->A /* attention c'est un petit moins ! */ IF A#supérieur ou égal à#50 50->A IF B=1 THEN IF C=0 THEN CLRHOME DISP "MUNITIONS VIDES" PAUSE GOTO Q END /* si C=0 cela signifie: plus de munitions, et dans ce cas retour au menu */ 0->G FOR(E,8,52,4) G+1->G PT-ON(E,Y+(A/15)XG) END IF INT (Y+(A/15)XG)#supérieur ou égal à#Z-1 THEN IF INT (Y+(A/15)XG)#inférieur ou égal à#Z+1 THEN DISP "BIEN VU" 0->T C-1->C S+25->S 1->J /* enregistre les valeurs prévues pour quand ce joueur gagne avec cette arme */ PAUSE GOTO H /* revient au début du programme */ END END IF INT (Y+(A/15)XG)#inférieur ou égal à#Z-1 THEN GOTO N END IF INT (Y+(A/15)XG)#supérieur ou égal à#Z+1 THEN LBL N /* créé un opérateur OU avec une imbrication de IF et avec un GOTO */ DISP "NON RATE" C-1->C 1->T 2->J Y->#theta# PAUSE GOTO H END END IF B=2 /* continu le programme pour l'arme 2, joueur 1 (bazouka) */ THEN IF D=0 THEN CLRHOME DISP "MUNITION VIDES" PAUSE GOTO Q END 0->G FOR(E,8,52,4) G+1->G PT-ON(E,Y+(A/15)XG) END IF INT (Y+(A/15)XG)#supérieur ou égal à#Z-5 /* surtout pas d'erreur ! */ THEN IF INT (Y+(A/15)XG)#inférieur ou égal à#Z+5 THEN DISP "ECLATE!" /* le charactère "!" se trouve dans le menu MATH */ 0->T D-1->D S+10->S 1->J PAUSE GOTO H END END IF INT (Y+(A/15)XG)#inférieur ou égal à#Z-5 THEN GOTO M END IF INT (Y+(A/15)XG)#supérieur ou égal à#Z+5 THEN LBL M DISP "ARF T NUL" D-1->D 1->T 2->J Y->#theta# PAUSE GOTO H END END END IF J=2 */ moitié du programme, passage au joueur 2. */ THEN LBL K CLRHOME IF P#inférieur ou égal à#0 THEN IF R#inférieur ou égal à#0 THEN GOTO X END END /* si le joueur n'a plus de munition sur ces deux armes (création d'un opérateur * * bouléen AND, grace a une imbication de IF) */ DISP "JOUEUR DE DROITE" DISP "1:PISTOL",P,"MUNITIONS" DISP "2:BAZOUKA",R,"MUNITIONS" INPUT "ARME?:",B /* enregistre le No de l'arme choisie dans la variable B */ INT B->B IF B#inférieur ou égal à#0 1->B IF B#supérieur ou égal à#3 2->B /* défini un intervalle pour B [1;2] */ CLRHOME DISP "(ANGLE LIMIT=" DISP "{-50;50})" INPUT "ANGLE?:",A CLRHOME IF A#inférieur ou égal à#-50 -50->A IF A#supérieur ou égal à#50 50->A IF B=1 THEN IF P=0 THEN CLRHOME DISP "MUNITIONS VIDES" PAUSE GOTO K END /* si P=0 cela signifie: plus de munitions, et dans ce cas retour au menu */ 0->G FOR(E,52,8,-4) G+1->G PT-ON(E,Z+(A/15)XG) END IF INT (Z+(A/15)XG)#supérieur ou égal à#Y-1 THEN IF INT (Z+(A/15)XG)#inférieur ou égal à#Y+1 THEN DISP "JOLI COUP" 0->T P-1->P U+25->U 2->J /* enregistre les valeurs prévues pour quand ce joueur gagne avec cette arme */ PAUSE GOTO H /* revient au début du programme */ END END IF INT (Z+(A/15)XG)#inférieur ou égal à#Y-1 THEN GOTO O /* lettre o */ END IF INT (Z+(A/15)XG)#supérieur ou égal à#Y+1 THEN LBL O /* créé un opérateur OU avec une imbrication de IF et avec un GOTO */ DISP "LOUPE" P-1->P 1->T 1->J Y->#theta# PAUSE GOTO H END END IF B=2 /* continu le programme pour l'arme 2, joueur 2 (bazouka) */ THEN IF R=0 THEN CLRHOME DISP "MUNITION VIDES" PAUSE GOTO K END 0->G FOR(E,52,8,-4) G+1->G PT-ON(E,Z+(A/15)XG) END IF INT (Z+(A/15)XG)#inférieur ou égal à#Y+5 /* surtout pas d'erreur ! */ THEN IF INT (Y+(A/15)XG)#supérieur ou égal à#Y-5 THEN DISP "BOUM!" /* le charactère "!" se trouve dans le menu MATH */ 0->T R-1->R U+10->U 2->J PAUSE GOTO H END END IF INT (Z+(A/15)XG)#inférieur ou égal à#Y-5 THEN GOTO I END IF INT (Z+(A/)XG)#supérieur ou égal à#Y+5 THEN LBL I DISP "TU VISE MAL" R-1->R 1->T 1->J Y->#theta# PAUSE GOTO H END END END LBL X CLRHOME DISP "L UN DES JOUEURS" DISP "NA PLUS DE MUNI-" DISP "TION" PAUSE CLRHOME DISP "LES SCORES SONT" DISP "DE:" DISP "J DE GAUCH:",S DISP "----------------" DISP "J DE DROITE:",U PAUSE DISP "" IF S>U DISP "J DE GAUCH GAGNE" IF S