Autorisation : Membre
Nb de messages : 5
Inscrit le : Lun 23 Avr 2007, 16:56
Posté le : Lun 23 Avr 2007, 18:30
Ma version de Mario (j'en ai vu une autre quelque part).
Elle fonctionne a peut près correctement, sauf que ça rame un peu, je conseille donc le TI-83+ , mais sur la TI-82 (que j'ai), c'est pas horrible non plus. L'algorythme qui créer la gravité est très basique, ce qui prend de la ram c'est l'algorythme qui gère les collisions (et qui n'est pas encore parfait au passage). Je vous ai fait un éditeur si vous avez la flemme d'ajouter des niveaux dans le programme (mais il faut déjà comprendre comment il marche pour ça ).
Ce programme n'est pas terminé aussi le jeu devrait planter une fois que vous avez terminé le niveau 6 (car il n'y a que 6 niveau pour le moment). Ce sont de très court niveaux qui prennent un seul écran, j'avais essayer de créer un défilement d'écran, mais niveau ram, c'est impossible de le faire sans avoir à attendre 4 secondes à chaque fois alors...
On a qu'une vie car j'ai trouvé que le jeu est relativement facile (sur TI-82 où c'est assez lent en tout cas).
Je vous ai épargné le manuel de jeu qui explique comment jouer et les commande, avec le programme fait 3500 octets, là il doit faire 2000 à 2500 octets.
Les commandes : Dans le jeu :
-Flèches directionnelles Dans l'éditeur :
-Flèches directionnelles
-"-" : 1 (sol)
-"*" : 2 (picant)
-"" : 0 (vide)
-"E" : 3 (position de fin du niveau)
-"S" : 4 (position de départ du niveau)
-"^" : 5 (tremplin)
-Jouer sur la Map (attention on ne peut jouer qu'une fois) : Clear
Faute que ça ramait déjà beaucoup, je ne me suis pas arrangé pour qu'on puisse tomber dans le vide, aussi arrangez vous pour que la dernière ligne n'ai aucun trou.
Code
:{8,16}->dim([A])
:0->E
:Menu("MARIO","JOUER",J,"EDITEUR","E","QUITTER",L)
:Lbl L
:ClrHome
:Output(4,4,"BYE..."
:Stop
:End
:Lbl E
:ClrHome
:1->V:1->W
:8->Y:16->Z
:1->S:1->T
:Fill(0,[A])
:3->[A](Y,Z]
:4->[A](S,T)
:Output(8,16,"E
:While 1=1
:If (K=24 and W!=1) or (K=25 and V!=1) or (K=25 and W!=16) or (K=34 and V!=8)
:Then
:If [A](V,W)=0
:Output(V,W," "
:If [A](V,W)=1
:Output(V,W,"-"
:If [A](V,W)=2
:Output(V,W,"*"
:If [A](V,W)=3
:Output(V,W,"E"
:If [A](V,W)=4
:Output(V,W,"S"
:If [A](V,W)=5
:Output(V,W,"^"
:End
:If K=24 and W!=1
:W-1->W
:If K=24 and V!=1
:V-1->V
:If K=26 and W!=16
:W+1-W
:If K=34 and V!=8
:V+1->V
:If K=92 and [A](V,W)!=3 and [A](V,W)!=4
:1->[A](V,W)
:If K=93 and [A](V,W)!=3 and [A](V,W)!=4
:2->[A](V,W)
:If K=102 and [A](V,W)!=3 and [A](V,W)!=4
:0->[A](V,W)
:If K=94 and [A](V,W)!=4
:Then
:Output(Y,Z," "
:0->[A](Y,Z)
:V->Y:W->Z
:3->[A](V,W)
:End
:If K=93 and [A](V,W)!=3
:Then
:Output(S,T," "
:0->[A](S,T)
:V->S:W->T
:4->[A](V,W)
:End
:If K=83 and [A](V,W)!=3 and [A](V,W)!=4
:5->[A](V,W)
:Output(V,W,"X"
:0->K
:getKey->K
:If K=45
:Then
:For(A,1,8)
:For(B,1,16)
:If [A](A,B)=3 or [A](A,B)=4
:0->[A](A,B)
:End
:End
:S->I:T->J
:Y->O:Z->P
:1->E
:Goto C
:End
:End
:Lbl J
:ClrHome
:0->Q
:Lbl B
:Q+1->Q
:Fill(0,[A])
:If Q=1
:Then
:For(A,1,16)
:1->[A](8,A)
:End
:1->[A](6,7)
:1->[A](5,11)
:1->[A](5,16)
:2->[A](8,13)
:2->[A](8,14)
:2->[A](8,15)
:4->O:16->P
:Goto C
:End
:If Q=2
:Then
:For(A,1,16)
:1->[A](8,A)
:End
:1->[A](6,5)
:1->[A](5,2)
:1->[A](5,6)
:1->[A](4,9)
:1->[A](3,13)
:1->[A](2,16)
:For(A,2,16,2)
:2->[A](8,1)
:End
:1->O:16->P
:Goto C
:End
:If Q=3
:Then
:For(A,1,16)
:2->[A](8,A)
:End
:1->[A](7,1)
:1->[A](4,2)
:1->[A](7,7)
:1->[A](5,9)
:1->[A](4,13)
:1->[A](3,16)
:2->O:16->P
:Goto C
:End
:If Q=4
:Then
:For(A,1,16)
:2->[A](8,A)
:End
:1->[A](8,1)
:1->[A](5,3)
:1->[A](2,4)
:For(A,2,7)
:2->[A](A,6)
:2->[A](A,9)
:End
:2->[A](2,8)
:2->[A](5,7)
:2->[A](7,8)
:2->[A](1,7)
:7->O:7->P
:Goto C
:End
:If Q=5
:Then
:For(A,1,10)
:1->[A](8,A)
:End
:For(A,11,16)
:2->[A](8,A)
:End
:2->[A](6,4)
:2->[A](5,4)
:2->[A](4,4)
:2->[A](3,5)
:2->[A](7,6)
:2->[A](6,6)
:2->[A](7,7)
:2->[A](6,9)
:2->[A](5,9)
:2->[A](4,8)
:2->[A](3,6)
:2->[A](3,7)
:2->[A](8,2)
:2->[A](7,15)
:2->[A](2,8)
:2->[A](5,15)
:2->[A](7,14)
:2->[A](6,14)
:2->[A](3,8)
:6->O:15->P
:Goto C
:End
:If Q=6
:Then
:For(A,1,16)
:2->[A](8,A)
:End
:4->[A](2,1)
:5->[A](3,3)
:5->[A](6,8)
:5->[A](5,9)
:5->[A](6,12)
:5->[A](5,14)
:5->[A](3,15)
:5->[A](1,16)
:5->[A](1,13)
:5->[A](1,10)
:1->[A](2,7)
:1->O:7->P
:Goto C
:End
:Lbl C
:0-K:0->N:0->M:0->L
:ClrHome
:For(A,1,8)
:For(B,1,16)
:If [A](A,B)=1
:Output(A,B,"-"
:If [A](A,B)=2
:Output(A,B,"*"
:If [A](A,B)=5
:Output(A,B,"^"
:End
:End
:Lbl A
:If E=0
:Then
:3->I:1->J
:End
:If Q=6
:Then
:1->I:1->J
:End
:0->N:0->L:0->M
:While 1=1
:If I=0 and J=P
:Then
:If E=0
:Then
:Goto B
:Else
:Goto V
:End
:End
:If I>0
:Then
:If [A](I,J)=5
:Then
:2->N
:0->[A](I,J)
:End
:If [A](I+1,J)=2
:Goto K
:If ([A](I+1,J)=0 or [A](I+1,J)=5) and N=0
:1->M
:End
:If I<1 and N=0
:1->M
:If K=25
:Then
:If [A](I+1,J)=1
:Then
:If I!=1
:Then
:If [A](I-1,J)=0 or [A](I-1,J)=5
:3->N
:Else
:3->N
:End
:End
:End
:If K=24 and J!=1
:3->L
:If K=26 and J!=16
:4->L
:If L!=0 or M!=0 or N!=0
:Then
:If I>0
:Output(I,J," "
:If N!=0
:Then
:If I>1
:Then
:If [A](I-1,J)=0 or [A](I-1,J)=5
:Then
:I-1->I:N-1->N
:Else
:If [A](I-1,J)=2
:Goto K
:0->N
:End
:Else
:I-1->I:N-1->N
:End
:End
:If M=1
:I+1->I
:If L=3
:Then
:If I>0
:Then
:If [A](I,J-1)=2
:Goto K
:If [A](I,J-1)=0 or [A](I,J-1)=5
:J-1->J
:Else
:J-1->J
:End
:End
:If L=4
:Then
:If I>0
:Then
:If [A](I,J+1)=2
:Goto K
:If [A](I,J+1)=0 or [A](I,J+1)=5
:J+1->J
:Else
:J+1->J
:End
:End
:End
:If I>0
:Output(I,J,"M"
:0->L:0->M
:getKey->K
:End
:Lbl V
:Output(4,4,"WELL DONE !"
:Pause
:PrgmMario
:Lbl K
:Output(4,5,"YOU DEAD MAN"
:Stop
Autorisation : Membre
Nb de messages : 5
Inscrit le : Lun 23 Avr 2007, 16:56
Posté le : Lun 23 Avr 2007, 19:41
Mais non je programme depuis que je suis en seconde (là je suis en 1ere S).
Je me souviens, pendant toute l'année de seconde, j'avais crée une dizaine de "Reflex" très variés (dont certains vrais bijoux ). Tout est passé à la trappe depuis ^^. J'ai aussi à mon actif un jeu de dame, de ping pong, pleins de jeux de société (genre bataille navale...), mais tout a été supprimé recemment, marre de suer à créer des programmes qui ne dépassent pas 1500 octets
Autorisation : Membre
Nb de messages : 595
Inscrit le : Mer 04 Avr 2007, 13:29
Posté le : Ven 27 Avr 2007, 16:17
J'ai plusieurs questions par rapport à ton pogramme.
D'une part si j'ai ien compris, l'éditeur sert à faire un niveau ?
Ca veur dire quoi jouer sur la map ?
Et puis il y a un truc que je comprend pas. Au bout d'un moment, il faut qu'un nombra ait pour factorielle 4, or à ma connaissance, aucun ombra n'a pour factorielle 4.
Et puis j'aurais sûrement d'autres questions vu que le programme ne fonctionne pas (j'ai surement du ma tromper en recopiant).
---------------------- Vive la programmation et vive le vibraphone !!!
diegowar Invité
Posté le : Sam 28 Avr 2007, 13:11
L'éditeur sert à construire un niveau sans utiliser les nombres, mais juste les bouton (le programme traduit ce qu'on appuie dans une matrice (et 2 variables) qui sont ce qu'il faut au programme pour lancer un niveau. Une fois que le niveau est fini, le programme cherche d'emblée à aller au prochain niveau, alors pour éviter ça j'ai mis que si la booléenne de l'éditeur est activée (je ne sais pas du tout laquelle c'est ^^), quand on fini le niveau, le programme s'arrête (et quand on meurt le programme s'arrête de toute façon). Donc on ne pourra jouer sur la map (c'est à dire la carte, j'entend par là le niveau ) qu'une seule fois, qu'on gagne ou qu'on perde. Si on veut y rejouer, il faut entrer dans le programme, et mettre un goto qui va direct au label qui rend le niveau jouable car celui-ci ne devrait pas être effacé de la mémoire immédiatement aprés.
Je n'utilise aucune factorielle dans le programme, j'ai lancé la recherche pour les "!" dans le code que j'ai recopié, et je n'ai vu que des "!=" et aucune factorielle.
Si le programme ne fonctionne pas, c'est peut être aussi à cause de moi, je l'ai recopié très rapidement (et je me suis vu me corriger sur la ligne d'avant que j'étais en train d'écrire, alors peut être ai-je fais des oubli (mais je suppose que si je me suis trompé, ça se verrait plutot dans une syntax error)).
Autorisation : Membre
Nb de messages : 3
Inscrit le : Mer 16 Sep 2009, 15:33
Posté le : Ven 18 Sep 2009, 20:17
Je n'arrive pas a faire marcher mario:
pour l'étiquette il me m'est un x en haut a gauche que je peut deplacer quer en bas et en haut et a la place du x en haut as gauche il me m"est un s.
Pour le jeu je ne peut pas reculer et je n'arrive pas a cahnger de niveaux car je peut me ballder que dans la fenetre donc que sur les 3 "-".
Help. merci d'avance.
Les "." sont du vide
___________________
|X...........................|
|.............................|
|.............................| -> si je deplace le X vers le bas il me met un S
|.............................|
|.............................|
|_________________E|
__________________
|............................|
|............................|
|............................| <- je ne peut pas passer la fin du graphique
|........-.....-..-..........|
|....-.......................|
|M___________***___|
|Zhangfei| Invité
Posté le : Jeu 20 Sep 2012, 21:09
Salut, je sais pas si ça pose probème à l'un d'entre vous mais moi du moins, dès que je le lance, il me met Err:Syntaxe, je fait 2:voir et je voit que ce sont les [A] qui ne marchent pas, alors je sais pas si je doit pas les remplacer par quelques choses d'autres car je ne m'y connait pas trop en programme, je sais juste recopier (j'ai une ti-82 Stats.fr). Merci si vous pouviez m'aidez, parce que sinon je me suis taper 2577 octets pour que ça ne marche pas dès la première ligne donc ça me fait un peu mal aux fesses. A+