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
JEU DEUX JOUEURS
Auteur Message
Mr.Jak



Autorisation : Membre
Nb de messages : 3
Inscrit le : Ven 09 Déc 2016, 17:48
Posté le : Ven 09 Déc 2016, 18:37   Citer 

Salut à tous,
ce post sera l'occasion de me présenter un peu, c'est le premier post que je fais sur ce forum même si j'y traîne depuis quelques années déjà. Je suis actuellement en Terminale S et voilà déjà un moment que je trifouille un peu dans ma calculatrice et j'ai fait un jeu deux joueurs que je voulait partager avec vous. glasses.gif

INFO :
-Programmé sous TI-82+ en langue anglaise
-Le jeu prend 373 octets mais n'est pas optimisé.

POUR LES DEBUTANTS :
-Les symboles tels que inférieur ou égal etc.. se trouvent dans test (2nde+math)
-La fonction int(, le point d'exclamation etc.. se trouvent dans math

DESCRIPTION :
Alors le principe est simple, vous gérez un personnage et devez tirer sur votre adversaire avec la touche "In" ou "-" en fonction de quel côté vous êtes par rapport à la calculatrice. J'ai mis une limite de temps que vous pouvez modifier dans le programme, personnellement j'ai mis 15 secondes.

J'ai maintenant terminé le jeu grâce à vos conseils, merci à tous ! Je suis content du résultat !

PROBLEMES RENCONTRES LORS DU DEVELOPPEMENT :
-Je n'ai pas réussi à trouver comment mettre un délai entre chaque tir, donc si vous avez des propositions, ça sera avec plaisir que je les accueillerai.
-Je voulais aussi "reset" les positions une fois qu'un point était marqué mais je n'y suis pas arrivé, si vous avez des idées rendez vous dans les commentaires loupe.gif




Code

ClrHome
2->A:6->B:1->C:1->D:20->F:0->Z:0->Y:3->T:3->U      //20->F avec 20 la limite de temps
Lbl 1
69!:69!
ClrHome
Output(1,8,int(F
Output(1,2,Z
Output(1,16,Y
Output(A,1,"{-
output(B,15,"-}
getKey->K
If K=81 and T>=2:Goto 2     //>= supérieur ou égal
If K=85 and U>=2:Goto 3
A+C->A
B+D->B
1+T->T
1+U->U
If A>=8:-1->C               //>= supérieur ou égal  //Utiliser le "(-)" de la calculatrice
If B>=8:-1->D
If A<=2:1->C               //<= inférieur ou égal
If B<=2:1->D
F-0,25->F
If F=0:Stop
Goto 1
Lbl 2
2->E
0->T
Lbl 4
Output(A,E,"-
E+1->E
If A=B and E=16:Z+1->Z
If A=B and E=16:0->U
If A=B and E=16:Goto 1
If E>=16:Goto 1
Goto 4
Lbl 3
15->E
0->U
Lbl 5
Output(B,E,"-
E-1->E
If B=A and E=1:Y+1->Y
If B=A and E=1:0->T
If B=A and E=1:Goto 1
If E<=1:Goto 1
Goto5



N'hésitez pas à donner vos avis et amusez vous bien. bigmouth.gif

 Adresse email Haut de page Bas de page 
 
Paulo1026



Autorisation : Membre
Nb de messages : 128
Inscrit le : Ven 06 Nov 2015, 19:22
Posté le : Dim 11 Déc 2016, 20:22   Citer 

Je te fais le reset de la position quand j'aurai le temps (c'est assez simple il faut juste que je regarde ton code pour savoir quelle variable correspond à quoi, etc...)

 Adresse email Haut de page Bas de page 
 
Mr.Jak



Autorisation : Membre
Nb de messages : 3
Inscrit le : Ven 09 Déc 2016, 17:48
Posté le : Dim 11 Déc 2016, 20:46   Citer 


Citer : Paulo1026
Je te fais le reset de la position quand j'aurai le temps (c'est assez simple il faut juste que je regarde ton code pour savoir quelle variable correspond à quoi, etc...)



Merci beaucoup bigmouth.gif

 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 839
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Lun 12 Déc 2016, 12:36   Citer 

Pour la limite de temps : tu prends une variable (une par joueur) que tu augmentes de 1 à chaque tour.
Tu la réinitialises à 0 lorsqu'il y a un tir.
Tu n'autorises le tir que si elle est supérieure à une certaine valeur V (à toi d'ajuster pour que ça fasse ~20s (mais ça dépendra de l'état de la pile, RAM, etc).
Au début tu l'initialise à V, pour qu'on puisse tirer dès le début.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Tout82 a changé d'adresse: allez ici pour rejoindre le nouveau tout82 : http://tout82.forumactif.org/forum

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
EDG



Autorisation : Membre
Nb de messages : 37
Inscrit le : Lun 29 Fév 2016, 14:12
Posté le : Lun 12 Déc 2016, 13:24   Citer 

De ce que j'ai compris, A c'est le J1, B le J2, C et D sont les montés et descente des joueurs (C pour A et D pour B), 2 et 8 sont les limites, F le temps, Z les points de A et Y le points de B (juste à la vue, j'ai pas recopier ton programme sur ma calculatrice.)

Donc pour reset les position, du devrais changer ton code


Code
If B=A and E=1:Y+1->Y
If B=A and E=1:8->B
If B=A and E=1:2->A
If B=A and E=1:Goto 1



par


Code
If B=A and E=1
Then
Y+1->Y
8->B
2->A
Goto 1
End



et


Code
If A=B and E=16:Z+1->Z
If A=B and E=16:2->A
If A=B and E=16:8->B
If A=B and E=16:Goto 1



par


Code
If B=A and E=16
Then
Z+1->Z
8->B
2->A
Goto 1
End



----------------------
MES PROGRAMMES : http://les-programmes-d-edg.e-monsite.com/
 Adresse email Haut de page Bas de page 
 
Paulo1026



Autorisation : Membre
Nb de messages : 128
Inscrit le : Ven 06 Nov 2015, 19:22
Posté le : Lun 12 Déc 2016, 19:51   Citer 

Et voilà la réponse bigmouth.gif merci pour lui EDG j'avoue que j'avais un peu la flemme et que je le lui aurai pas fait avant le week'end XD

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
m@thieu41



Autorisation : Membre
Nb de messages : 839
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 13 Déc 2016, 17:33   Citer 

/!\ Évitez les goto dans les boucles et structures If/Then/end !
http://tout82.free.fr/forum/sujet.php?sujet=2757

Surtout que le Goto sera de toute façon exécuté aux lignes
If E<=1:Goto 1
If E>=1:Goto 1

Je te recommande donc de juste enlever les Goto dans la proposition de EDG.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Tout82 a changé d'adresse: allez ici pour rejoindre le nouveau tout82 : http://tout82.forumactif.org/forum

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Mr.Jak



Autorisation : Membre
Nb de messages : 3
Inscrit le : Ven 09 Déc 2016, 17:48
Posté le : Mer 14 Déc 2016, 19:40   Citer 

Merci à tous de vos réponses ! cupsmiley.gif cupsmiley.gif

 Adresse email Haut de page Bas de page 
 
EDG



Autorisation : Membre
Nb de messages : 37
Inscrit le : Lun 29 Fév 2016, 14:12
Posté le : Jeu 19 Jan 2017, 14:43   Citer 

pas de problèmes bigmouth.gif

----------------------
MES PROGRAMMES : http://les-programmes-d-edg.e-monsite.com/
 Adresse email Haut de page Bas de page 
 
Homer_Dalor
Invité
Posté le : Sam 22 Avr 2017, 15:45   Citer 

Comment ça je suis en retard ?

Non pas du tout. N'insistez pas !
Bref. Voilà ton programme avec quelques modifications expliquées winkle.gif
J'ai pas mis les mêmes variables, vu que j'ai refait le jeu dans mon coin sans vraiment regardé ce que t'avais mis. Excuse moi cry.gif


Code

:EffVar VEffVar WEffVar AEffVar B2->C:6->D:1->Y:1->Z    //Pour les variables, ici A et B sont les scores, C et D les positions des persos, Y et Z si ils vont vers le haut ou le bas. U et T dans ton programmes sont inutiles (voir suite programme), V et W sont les temps de recharge

:Repeat K=45     //Pour l'arrêt, je n'ai pas mis de limite de temps, si tu veux la rajouter, comme tu avait fait été parfait^^

:EffEcr
:Output(1,2,A
:Output(1,15,B
:Output(C,1,"{-
:Output(D,15,"-}
:codeTouche->K
:If K=81 et non(V:Then     //Si le joueur de gauche appuie et si le temps de recharge et à 0. non(V signifie V=0, on gagne un octet, c'est important !
:For(E,3,16
:Output(C,E,"-      //Plus simple que d'incrémenter une variable, tu t'es compliqué la vie :)
:End
:If C=D:A+1->A     //Si les deux joueurs sont sur la même ligne, on ajoute un point
:4->V      //Le temps de recharge
:End       //On ferme la boucle le joueur de gauche a fini de tirer.
:If K=85 et non(W:Then      //Pareil pour le joueur de droite
:For(E,14,1,-1
:Output(D,E,"-
:End
:If C=D:B+1->B
:4->W
:End
:C+Y->C       //Y=1 ou -1 le joueur ira donc soit en bas, soit en haut.
:D+Z->D
:If C=8 ou C=2:-Y->Y    //si le joueur touche un bord, on inverse sa direction
:If D=8 ou D=2:-Z->Z
:V-(V>0->V              //On décremente le temps de recharge si il est supérieur à 0
:W-(W>0->W
:End                   //Fin de la boucle repeat.




Y a ptet encore des amélio à faire, quelques broutilles surement^^
Bref, ce qu'on peut en conclure : Les boucles seront toujours mieux qu'un Goto Lbl bigmouth.gif
Tu vas voir, c'est beaucoup plus rapide comme ça.
Bonne continuation ! <3

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





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2017 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