Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
ESCRIME
Rézus le 14/07/2009 à 21:08
Bon je m'ennuie alors voilà un petit programme d'escrime.(¤ c'est un theta)
Code
:Lbl A
:ClrHome
:1->A:15->B
:0->I:0->J
:Lbl 1
:A->D:B->E
:ClrHome
:Output(8,A,"I
:Output(7,A,"0I
:Output(6,A,"0!
:Output(5,A," !
:Output(8,B+1,"I
:Output(7,B,"I¤
:Output(6,B,"!¤
:Output(5,B,"!
:0->K
:getKey->K
:If K=41
:1->I
:If K=44
:Goto 5
:If K=45
:1->J
:If K=41 or K=45
:Goto 1
:If K=42
:Goto 3
:A-(K=51)+(K=52)->A
:B-(K=54)+(K=55)->B
:If A+1=B
:Then
:A-1->A:B+1->B
:End
:B-(B=16)->B
:A+(A=0)->A
:If A different de D
:0->I
:If B different de E
:0->J
:Goto1
:Lbl 3
:Output(5,A+1,"
:Output(6,A+1,"
:Output(7,A+1,"H--
:If J=1 and A+3=B+1
:Then
:Output(1,11,"BLOQUE
:0->J
:Goto 1
:Else
:If A+3=B+1
:Then
:Disp "JOUEUR DE GAUCHE
:Disp " GAGNE
:Pause
:Goto ¤
:Else
:Goto 1
:End
:Lbl 5
:Output(5,B,"
:Output(6,B,"
:Output(7,B-2,"--H
:If I=1 and B-2=A
:Then
:Output(1,1,"BLOQUE
:0->I
:Goto 1
:Else
:If B-2=A
:Then
:Disp "JOUEUR DE DROITE
:Disp " GAGNE
:Pause
:Goto ¤
:Else
:Goto 1
:End
:Lbl ¤
:ClrHome
:Output(1,1,""
Les touches pour le joueur de gauche sont x^-1 et sin pour les déplacements,math pour bloquer un coup et matrice pour attaquer.
Pour le joueur de droite c'est tan et ^ pour les déplacements,annul pour bloquer et var pour tapper.
PS:quand vous appuyez sur la touche de bloquage,le personnage est prêt à bloquer tant que vous ne vous déplacez pas. si vous recevez un coup le bloquage s'annule.
On peut pousser l'adversaire si on avance vers lui alors qu'on le touche.
Sangohan38 le 15/07/2009 à 12:00
Je pense que ce programme est rétrecissable de la façon suivante (j'ai pas de calto sous la main donc faudra tester):
Code
:Lbl A
:1->A:15->B
:A->D:B->E
:0->I:0->J
:Lbl 1
:ClrHome
:Output(8,A,"I
:Output(7,A,1,"0I
:Output(6,A,"0!
:Output(8,B+1,"I
:Output(7,B,"I¤
:Output(6,B,"!¤
:Output(5,B,"!
:0->K
:While K=0
:getKey->K
:A-(K=51)+(K=52)->A
:B-(K=54)+(K=55)->B
:If A+1=B
:A-1->A
:If A+1=B
:B+1->B
:If B>15
:B-1->B
:If A<1
:A+1->A
:If A différent de D
:0->I
:If B différent de E
:0->J
:If A différent de D ou B différent de E
:Goto 1
:If K=41
:1->I
:If K=44
:1->J
:If K=41 ou K=44:Goto 1
:If K=45
:Goto 3
:If K différent de 42
:End
:Output(5,A+1,"
:Output(6,A+1,"
:Output(7,A+1,"H--
:If J=1
:Then
:Output(1,11,"BLOQUE
:0->J
:Goto 1
:Else
:If A+2=B+1 ou A+3=B+1
:Then
:Disp "JOUEUR DE GAUCHE
:Disp " GAGNE
:Pause
:Stop
:Else
:Goto 1
:End
:Lbl 5
:Output(5,B,"
:Output(6,B,"
:Output7,B-2,"--H
:If I=1
:Then
:Output(1,1,"BLOQUE
:0->I
:Goto 1
:Else
:If B-2=A ou B-1=A
:Then
:Disp "LE JOUEUR DE DROITE
:Disp " GAGNE
:Pause
:Stop
:Else
:Goto 1
:End
Sangohan38
Rézus le 15/07/2009 à 14:45
Ta version est plus courte mais un peu plus lente que la mienne,de plus les adversaires ne peuvent pas se taper et donc j'ai pas pu vérifier si ils peuvent bloquer enfin bon sans calculette c'est pas facile.
PS: T'as fait des erreurs en tapant le code ^^ regarde dans les output du début, et à "LE JOUEUR DE DROITE" faut enlever le 'LE' sinon sa rentre pas dans l'écran mais ça sans la calto c'est pas facile à savoir non plus.Sangohan38 le 15/07/2009 à 17:09
Au risque de te décevoir, je n'ai fait qu'un copié-coller de ton programme et ensuite j'ai modifié.
Donc le LE est écrit dans ton code en premier et non dans le miens.
Pour l'abscence du bloquage, c'est possible car j'ai essayé de modifier mais je n'ai tester aucun des deux programmes.
Ta version est plus rapide mais l'utilisation des Then entraine un ralentissement de la calculatrice.
Sangohan38Rézus le 15/07/2009 à 18:14
Bon j'ai modifié des trucs,et j'ai supprimé le Then.Je laisse le deuxième car c'est lui qui permet aux joueurs de se pousser j'ai vu que dans ta version tu l'as enlevé mais ça empêche le joueur de droite de pousser celui de gauche.
Je rajoute aussi le ClrHome et le Output(1,1,"" pour te faire plaisir ^^Tampp le 06/09/2009 à 17:38
Bonjour voila après avoir mis le prog dans ma calculette j'ai eu des probleme avec les theta j'ai corriger le probleme mais sa me dis toujours quil y en a un.Rézus le 06/09/2009 à 17:41
Et ça provoque quoi ?tampp le 06/09/2009 à 19:01
Il me di que cette ligne est mauvaise
Rézus le 07/09/2009 à 19:26
J'ai vérifié et j'ai pas fais de faute de copie.
Si il t'affiche erreur domaine c'est qu'il y a un problème avec la variable B donc partout où tu vois un B regarde si tu as bien recopié.
Si il te met erreur argument ou syntaxe écrit la ligne comme ça: Output(7,B,"I¤")
Et si ça marche pas supprime là. si le jeux démarre c'est la ligne qui a un problème,sinon c'est ailleurs.
Dis moi quoi.coc5 le 10/09/2009 à 21:40
Avant tout précise l'erreur : SYNTAXE ? ARGUMENT ? Y a pleins de types différents, mais avant tout action faut connaître la nature de l'erreur.maofr le 08/10/2009 à 09:27
Hello je suis nouveau dans la programmation
et j'ai testé le prog : le joueur de gauche ne fai que taper et c impossible de gagner mais la base est geniale ^^
PS y a til un site ou on voit le nombre des touches ( getKey->K:K=42 ...45 ...
merci d'avance :

Wirekey le 08/10/2009 à 15:11
http://tifreakware.net/tutoria[...]3plusgetkey.gif
Pour les retrouver si tu programme en cours crée un petit programme du style
Code
Repeat K=11
Getkey->K
If K != 0
Disp K
End
Stop
( Pour quitter appuie sur [ f( x ) ]
Voila

sypotu le 08/10/2009 à 19:07
Il y a plus simple :
Le premier chiffre est la ligne de la touche, le second la colone.Rézus le 11/10/2009 à 17:41
Quant au bug,le programme marche sur ma calculette et je n'ai pas fais d'erreur de copie donc vérifie si tu n'en a pas fait.Rézus le 18/10/2009 à 20:32
Un petit prog du même genre que j'ai fait tout à l'heure et qui ne mérite pas un topic à lui tout seul par contre il a une IA.
Vous êtes à droite,vous êtes protégé quand vous êtes derrière le mur.
Le but est de vous placer en face de l'adversaire et de tirer pour marquer des points.Il peut faire de même donc attention
[annul] pour vous déplacer vers le haut
[diviser] pour aller vers le bas
[^] pour tirer
[entrer] pour terminer la partie
Code
EffEcr
Output(4,1,"0!
Output(4,15,"!Á
4ü (
) Y:4ü (
) Z:0ü (
) E:0ü (
) F:0ü (
) O:0ü (
) P:0ü (
) T:0ü (
) U
Lbl 1
For(A,0,9û99,1^ú (
) 9
0ü (
) K:0ü (
) D
codeTouchü (
) K
Yü (
) B:Zü (
) C
Y+entAléat(-1,1)ü (
) Y
Y-(Y=9)+(Y=0)ü (
) Y
Z-(K=45)+(K=65)ü (
) Z
Z-(Z=9)+(Z=0)ü (
) Z
Output(B,1,"
Output(Y,1,"0
Output(C,16,"
Output(Z,16,"¤
If K=55 et Zø4
Goto 2
If Y=Z et Yø4
entAléat(1,2)ü (
) D
If D=1
Goto 3
If D=2
T+1ü (
) T
If K=105
Goto 4
End
Lbl 2
If Z=Y
Then
Output(Y,1,"
F+1ü (
) F
O+1ü (
) O
Goto 1
End
O+1ü (
) O
Goto 1
Lbl 3
Output(Z,16,"
E+1ü (
) E
T+1ü (
) T
Goto 1
Lbl 4
EffEcr
Output(3,1,E
Output(3,5,"SCORES
Output(3,14,F
Output(4,1,T
Output(4,6,"TIRS
Output(4,14,O
If Eø0
100E/Tü (
) U
Output(5,1,partEnt(U
Output(5,4,"PRECISION
If Fø0
100F/Oü (
) P
Output(5,14,partEnt(P
Bon maintenant que j'ai le cable,je vais pouvoir poster des trucs un peu plus évolués ^^
Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.