|
Posté
il y a plus de 11 ans
, modifié
il y a plus de 11 ans
par martin_zepigue
|
|
Il arrive parfois qu'en cours on s'ennuie profondément. Pas au point de s'endormir, mais presque. Heureusement nous avons tous, nous autre élèves, à notre disposition un outil formidable : la calculatrice programmable.
Comment me vint l'idée de ce jeu
Avouons-le tout de suite : le principe de ce jeu n'est qu'une conséquence de ma flemmardise et de ma médiocrité en algorithmique (
var fausse_modestie = true
). En effet, je m'étais d'abord conforté dans l'idée de programmer un banal Snake . Mais malgré mes incommensurables efforts, je n'arrivais pas à régler deux problème majeur : faire grandir le serpent et gérer les collisions.
Soudain, il me vint une idée : au lieu de me torturer les méninges afin de permettre un agrandissement du serpent, je pensai qu'il suffisait de remplacer l'agrandissement du serpent par quelque chose de tout aussi gênant. Je décidai donc de faire pondre un oeuf à mon serpent lorsque il arrive enfin à manger sa pomme. Mais il faut faire attention à ne pas casser les oeufs !
Ainsi naquit le Serpent Ovipare.
Principe de Jeu
Bon, j'ai déjà expliqué le principe dans la première partie, mais je les redit pour les gens du fond qui suivent pas : vous dirigez un serpent dont le but premier est de vous occupper pendant les heures de cours ennuyantes et de manger des pommes. A chaque fois que vous avalez goulûment un de ces délicieux fruits, vous pondez un oeuf. Direct, comme ça, d'un coup. Ca fait bizarre, hein ? Vous gagnez donc un point. Nonobstant ( j'ai enfin réussi à le caser celui-là ) que vous ayez gagné un point, il vous faut être prudent, car si vous cassez un oeuf, vous perdez non pas un, mais DEUX points ! Au début, c'est facile mais vers la fin, c'est l'enfer... De plus, votre serpent perd un point s'il n'a pas mangé depuis plus de 30 secondes! Le jeu prend aussi en compte un score qui est en fait le temps de jeu ( plus vous tenez longtemps, plus vous avez de points ).
Programmation
Le jeu a été codé en TI-Basic, ce qui implique une assez petite taille mais aussi quelques limitations techniques; le jeu s'affiche donc en ASCII-Art pour ne pas consommer trop de ressources, et un jeu légerement lent. Il est compatible seulement avec la TI-82 Stats .fr (pour les autres j'ai pas testé ), qui est de toute façon la calculatrice demandée par l'Éducation Nationale lorsque vous rentrez au lycée.
Mais comme le jeu ne gère pas l'agrandissement du serpent, il ne ralentit jamais, contrairement aux autres snake que l'on peut trouver en fouinant sur Internet. Vous voilà prévenu : quand il y aura une vingtaine d'oeufs à l'écran, ne comptez pas sur un ralentissement du jeu pour vous aider ! Cependant une pause est disponible à tout moment pour souffler un peu ( ou si le prof surgit derrière votre dos ).
Attention toutefois, le programme nécessite de pré-fabriquer une matrice [A] de dimensions 6 * 16. Ou sinon vous pouvez rajouter la ligne suivante au début du code :
[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]] -> [A]
Code du jeu
Allez, sans plus tarder, le code du jeu :
Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)
Lbl D
EffEcr
Remplir(0, [A]
4->E:2->F
4->J:1->K
entAleat(1,6->U
entAleat(1,16->V
1->Z
1->W
1->P
26->M
While 1
1->G
Output(E+1,F,"O
Output(U+1,V,"X
Output(1,1,Z
Output(8,1,W
If E=U et F=V
Then
Z+1->Z
1->[A](U,V
Output(U+1,V,"O/
entAleat(1,6->U
entAleat(1,16->V
Output(U+1,V,"X
0->G:0->P
End
E->J:F->K
If [A](E,F:[A](E,F)+1->[A](E,F
If [A](E,F)=3
Then
Z-2->Z
0->[A](E,F
End
codeTouche->Q
If Q != 0:Q->M
If M=26:F+1->F
If M=24:F-1->F
If M=34:E+1->E
If M=25:E-1->E
If M=91
Then
EffEcr
Output(1,1," "
Stop
End
If E>6:1->E
If E<1:6->E
If E>16:1->F
If F<1:16->E
If G:Output(J+1,K,"
Output(1,1," "
If M=24 ou M=26 ou M=25 ou M=34
Then
W+1->W:P+1->P
End
If Z<=0
Then
EffEcr
Output(2,1,"BRAVO,VOUS AVEZSURVECU PENDANT
Output(4,7,W
Output(5,5,"SECONDES
Pause
Goto D
End
If P>30
Then
Z-1->Z:0->P
End
End
Légende:
- -> représente la touche STO ( au dessus de ON )
- != représente 'n'est pas égal à', accessible avec le menu 'test' ( seconde + 'math' )
- <= représente 'plus petit ou égal', accessible lui aussi via le menu 'test'.
- [A], c'est la matrice A, accessible via le menu 'matrice'. Pour l'éditer utilisez le menu EDIT.
- Le O/ est en fait le symbole têta ( Alpha + 3 ). Libre à vous de le remplacer par un autre symbole.
Résumé des commandes :
- Les flèches pour diriger le serpent
- La touche STO pour arrêter le jeu
- n'importe quelle autre touche pour mettre le jeu sur pause.
- Vous devez manger les pommes ( X ) sans casser vos oeufs ( têta )
A noter qu'il est fortement déconseillé de jouer à ce jeu dans les matières ou la calculatrice est inutile ...
|
|