Petit Programme ( qui marche pas top ) |
Auteur |
Message |
Bibounette
Autorisation : Membre
Nb de messages : 15
Inscrit le : Lun 06 Avr 2009, 0:17
|
Posté le : Dim 19 Avr 2009, 18:05
|
|
|
Bonjour !!
HéHé me revoila
Bon Alors voila sa fait plusieurs jours que j'essaye de comprendre et d'employer la fonction codeTouche, mais ... sans grans succès !
Je vous laisse rire :
Code | :EffDessin
:EffEcr
:0->x
:0->Y
:Lbl 0
:CodeTouche->K
:If K=26
:Then
:X+1->X
:End
:If K=25
:Then
:Y+1=Y
:End
:If K=34
:Then
:Y-1->Y
:End
:If K=24
:Then
:X-1->X
:End
:Goto A
:Lbl A
:Texte(X,Y,"0
:Goto 0 |
C'est totalement pitoyable je l'avoue mais bon faut bien commencer par la pour devenir une bosse !
Je voudrais que le 0 ce déplace avec les flèche et ne pas avoir de graphique si possible !
En attente d'une réponse,
Coordialement Bibounette
---------------------- ** C'est en faisant des erreurs que l'on progresse ** |
|
|
|
Belvar
Autorisation : Membre
Nb de messages : 57
Inscrit le : Lun 09 Fév 2009, 15:46
|
Posté le : Dim 19 Avr 2009, 21:58
|
|
|
Meuh non, c'est pas pitoyable, tu est débutante c'est tout
Ton code à grand moyen d'être amélioré ^^
Déjà, pour ne pas afficher le graphique, tu doit entrer la commande "GraphNAFF" Et pour ne pas avoir les fonctions, si tu en a, entre la commande "FonctOff".
Ensuite, ton code n'est pas très fiable car il est susceptible d'avoir des bugs et autres effets non désirés. Par exemple, ton code ne pourra pas marcher car tu à initialisé les variables x et y à 0, et tu ne peux pas afficher du texte à (0,0)...
Et même si tu les avait initialisé autrement, le joueur peut toujours "sortir" de l'écran ce qui provoquerait un bug, il faut donc rajouter des conditions pour que ça ne se produise pas, et, que, pourquoi pas, tu le téléporte de l'autre coté de l'écran (à la snake).
Autre effet non désiré : Tu n'efface pas le 0, et donc, tu va avoir une trainé derrière lui lorsque tu le déplacera, il faudrait que tu affiche le 0 après ton label et que si le joueur appuie sur une touche de déplacement (ou une touche tout court, ne t'embête pas :p), ça efface le "0" ( en affichant en espace).
Bon, par contre, l'utilisation du CodeTouche est correcte, mais tu pourrais raccourcir tes If !!
Il ne faut mettre un Then et un End à un If uniquement si il y a plus qu'une ligne dans la condition. Or, là, tu n'a qu'une ligne, tu pourrais donc mettre par exemple "If K=26:X+1->S" et c'est tout.
Voilà ^^ à toi d'améliorer ton programme toute seule, tu progressera comme ça
P.S. : Le ":GotoA : Lbl A", il sert a rien :p
|
|
|
|
Bibounette
Autorisation : Membre
Nb de messages : 15
Inscrit le : Lun 06 Avr 2009, 0:17
|
Posté le : Lun 20 Avr 2009, 2:12
|
|
|
Reuh !
Mercii à toi pour toutes ces indications, tu ma redonné le courage de comprendre se fameux CODETOUCHE !
Bon il ne me reste plus qu'a amélioré mon programme ... mais la il se fait tard, trop fatigué pour essayé.
Je le ferais demain, et qui sait il sera peut être fini ...
Coordialement Bibounette
---------------------- ** C'est en faisant des erreurs que l'on progresse ** |
|
|
|
Renard
Autorisation : Membre
Nb de messages : 18
Inscrit le : Lun 20 Avr 2009, 3:51
|
Posté le : Lun 20 Avr 2009, 4:32
|
|
|
Moi je ferai sa comme sa :
Code |
EffDessin
:EffEcr
:0->x
:0->Y
:Lbl 0
:Repeat K=105
:Texte(X,Y,"0"
:CodeTouche->K
:If K=26:X+1->X
:If K=25:Y+1=Y
:If K=34:Y-1->Y
:If K=24:X-1->X
:If X<... : ...üX
:If X>... : ...üX
:If Y<... : ...üY
:If Y>... : ...üY
:Texte(X-1,Y," "
:Texte(X+1,Y," "
:Texte(X,Y-1," "
:Texte(X,Y+1," "
:end
:Stop
|
( les ... représente les dimmension de ton écrans de jeu et les ü les fléche STO )
---------------------- Renard |
|
|
|
Bibounette
Autorisation : Membre
Nb de messages : 15
Inscrit le : Lun 06 Avr 2009, 0:17
|
Posté le : Lun 20 Avr 2009, 15:49
|
|
|
Salut ,
Maaaaaaiiiis euuuuuuuuuuuh j'était sencé faire le programme toute seule !
Bon je vais pas regardé ce que t'as fais ( FERME LES YEUX ) :p
Coordialement Bibounette
---------------------- ** C'est en faisant des erreurs que l'on progresse ** |
|
|
|
Belvar
Autorisation : Membre
Nb de messages : 57
Inscrit le : Lun 09 Fév 2009, 15:46
|
Posté le : Lun 20 Avr 2009, 18:33
|
|
|
Hum, de toutes façon, ton programme n'est pas bon, Renard
Si tu l'exécuterais tu aurais une erreur "dim" et si tu ferais "voir", ça te placerait sur la ligne ":Texte(X,Y,"0""...
(Et ce n'est pas la seule erreur...)
Bonne chance pour ton programme Bibounette
|
|
|
|
adrien
Invité
|
Posté le : Lun 20 Avr 2009, 19:31
|
|
|
Bonjour à tous,
Bibounette, je croi bien que tu as oublié un "END" pour que ta boucle ainsi que ton codetouch puisse marcher, et je te conseil d'utiliser output plutot que texte ( dans ce cas, x et y seraient égal à 0 par ewemple ), cela dit, Berlvar, text(x,y,"0 alors que x et y valent 0 marche tout à fait sur le graph, essai tju vera, mais en revenche , cela ne marche pas sur le Home ( Ecr ).
En espérant t'aider,
Adrien
|
|
|
|
adrien
Invité
|
Posté le : Lun 20 Avr 2009, 19:34
|
|
|
Citer : adrien | Bonjour à tous,
( dans ce cas, x et y seraient égal à 0 par ewemple Adrien |
Désoler en fait ils doivent être égal au moins à 1 sur le Home
|
|
|
|
Bibounette
Autorisation : Membre
Nb de messages : 15
Inscrit le : Lun 06 Avr 2009, 0:17
|
Posté le : Lun 20 Avr 2009, 19:58
|
|
|
Rebonjour !
Alors ayant lu toutes vos recommandation je suis arrivé a un résultat pas trop trop mauvais !
Le voila :
Code | :EffEcr
:EffDessin
:GraphOff
:FonctOff
:5->X
:8->Y
:Lbl 0
:Output(X,Y,"0
:codeTouche->K
:If K=26:Y+1->Y
:If K=25:X-1->X
:If K=34:X+1->X
:If K=24:Y-1->Y
:Goto C
:Lbl C
:If J=K
:Output(X,Y," (1 espace)
:Goto 0 |
Voili voilou, alors tout d'abord il n'y a plus de graphique , après le 0 se déplace dans le bonne ordre d'appuie, par contre au lieu de s'éffacé le 0 clignote :X ( c'est stylé mais c'est pas ce que je voulais faire xD ), et puis je ne vois vraiment pas comment mettre une limite au cadre hors écran (alors pour le faire apparaitre de l'autre côté ...).
En attente d'explication,
Coordialement Bibounette
---------------------- ** C'est en faisant des erreurs que l'on progresse ** |
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
adrien
Invité
|
Posté le : Lun 20 Avr 2009, 21:10
|
|
|
Salut, pour les limites c'est assez simple : 16 en abcisse et 8 en ordonnée; donc: if x(inférieur ou égal)1:8->X:if x(supérieur ou égal)8:1->X:if y(inférieur ou égal) 1:16->Y:if y(supérieur ou égal) 16:1->Y
J'espere que c'est ce que tu voulais,
Adrien
|
|
|
|
Bibounette
Autorisation : Membre
Nb de messages : 15
Inscrit le : Lun 06 Avr 2009, 0:17
|
Posté le : Lun 20 Avr 2009, 23:54
|
|
|
Re,
Mmmmh j'ai ajouter ce que tu ma dit Adrien, je tiens juste à te corrigé :
Code | :If X(inferieur ou égale à)1:9->X
:If X(Supérieur ou égal à)9:1->X
:If Y(inf. Ou = à)1:17->Y
:If Y(sup. Ou = à)17:1->Y |
Tu t'est juste trompé dans le nombre des abcisse et ordonnée.
Autrement il comporte un petit problème, lorsque je monte et que je tourne à gauche il me bloque (passage du haut et gauche), et lorsque je tourne à droite et que je déscend il me le fait passer(passage du droit et bas).
Coordialement Bibounette
---------------------- ** C'est en faisant des erreurs que l'on progresse ** |
|
|
|
mad67
Autorisation : Membre
Nb de messages : 630
Inscrit le : Sam 23 Jui 2007, 14:05
|
Posté le : Mar 21 Avr 2009, 8:09
|
|
|
voila ma méthode elle est un peu rude mais bon ...
Code | :EffEcr
:EffDessin
:GraphOff
:FonctOff
:5->X
:0->P
:0->Q
:8->Y
:Lbl 0
:Y+P->Y
:X+Q->X
:0->P
:0->Q
:If X(inferieur ou égale à)1:9->X
:If X(Supérieur ou égal à)9:1->X
:If Y(inf. Ou = à)1:17->Y
:If Y(sup. Ou = à)17:1->Y
:Output(X,Y,"0
:codeTouche->K
:If K=26
:1->P
:If K=25
:-1->Q
:If K=34
:1->Q
:If K=24
:-1->P
:Goto C
:Lbl C
:If J=K
:Output(X,Y," (1 espace)
:Goto 0[code] |
|
|
|
|
Belvar
Autorisation : Membre
Nb de messages : 57
Inscrit le : Lun 09 Fév 2009, 15:46
|
Posté le : Mar 21 Avr 2009, 12:56
|
|
|
Hmm, je propose une version plus légère :
Code | :EffEcr (Si tu travaille sur "Home", tu n'a besoin que de Effecr)
:8->X
:4->Y (Le "0" apparaitra au centre de l'écran)
:Lbl 0
:Output(Y,X,"0 (Pour les "Outputs" comme pour les "Texte", la valeur Y est avant la valeur X)
:codeTouche->K
:If K=26:Y+1->Y
:If K=25:X-1->X
:If K=34:X+1->X
:If K=24:Y-1->Y
:If X=17:1->X (Si ça dépasse l'écran)
:If X=0:16->X
:If Y=0:8->Y
:If Y=9:1->Y
:If K(plus grand ou égal)24 et K(inférieur ou égal)26 ou K=34
:Output(Y,X," (1 espace)
:Goto 0 |
|
|
|
|
Sangohan38
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Mar 21 Avr 2009, 16:43
|
|
|
Version encore plus légère:
Code | ClrHome
8->X
4->Y
While K[Différent de]105
Getkey->K
If K=24 or K=25 or K=33 or K=34:Output(Y,X,"
If K=24 and Y>1:Y-1->Y
If K=33 and X>1:X-1->X
If K=25 and Y<8:Y+1->Y
If K=34 and X<16:X+1->X
Output(Y,X,"0
End
ClrHome
Output(1,1," " |
De plus, dans ta version Belvvar, ça ne marche pas du tout pour effacer les traces.
Sangohan38
|
|
|
|
Bibounette
Autorisation : Membre
Nb de messages : 15
Inscrit le : Lun 06 Avr 2009, 0:17
|
Posté le : Mar 21 Avr 2009, 23:47
|
|
|
Resalut à tous,
J'ai eu une journée très chargée je n'ai pas encore eu le temps de bien regardé vos programmes mais je vais le faire demain promis !
Bonne soirée.
PS: Sango j'ai copié ton programme mais il ne marche pas, le 0 ne bouge pas :/.
---------------------- ** C'est en faisant des erreurs que l'on progresse ** |
|
|
|
Cyplejet
Autorisation : Membre
Nb de messages : 23
Inscrit le : Mar 21 Avr 2009, 20:14
|
Posté le : Mer 22 Avr 2009, 8:32
|
|
|
Citer : Sangohan38 | Version encore plus légère:
Code |
If K=24 or K=25 or K=35 or K=34:Output(Y,X,"
|
Sangohan38 |
Je crois que la touche 35 n'existe pas. ce serait pas 33 comme la suite du code ou même 26?
|
|
|
|
adrien
Invité
|
Posté le : Jeu 23 Avr 2009, 15:50
|
|
|
Non effectivement la touche 35 n'existe pas, mais cela ne nuit pas au progamme de sangohan car il y a "k=34", ce qui correspond à la touche du bas; tu n'as qu'à enlever "k=35", mais ça ne changera rien, si ce n'est de gagner quelques octects
|
|
|
|
Sangohan38
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Sam 25 Avr 2009, 14:49
|
|
|
C'est la touche 33 qu'il fallait marquer sinon, en se déplacant vers la droite, le O ne serait pas effacé.
Je viens de corriger cela dans le code.
Sangohan38
|
|
|
|