Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » BASIC » Problemes avec les SUB

sasuke83
ProgBoarder
Citer Windows XP Firefox 2 - Posté le 19/12/2006 à 21:47
Salut a tous !

je vous écris car j'ai un probléme avec un petit jeux.

Certain savent que je suis entrain de faire un jeux "damier" avec SFLPMEA, et il s'agit là d'un Pti.

Je dois aussi paralelement faire un petit jeux (à deux, mais mon partenaire m'a laché), de ping pong.

j'ai réalisé entierrement le code (vous comprendrez qu'il n'est pas du tout optimisé lol);



Wall (98) : Afficher le code source - Ouvrir dans une nouvelle fenêtre


Donc mon jeux fonctionne,

Mais je voudrais y rajouter le tableau d'introduction suivant:



Wall (99) : Afficher le code source - Ouvrir dans une nouvelle fenêtre


En fait je voudrais que le jeux commence par ce graph (le tableau), et si l'on appui sur 1 touche, le jeux demarre.

Mais je n'y arrive pas (triste)

j'ai penser faire dans ma boucle principale un

DO
mon graph
LOOP UNTIL (ma touche) ou
LOOP UNTIL INKEY$ <> ""

mais ça voudrais dire qu'il faudra que je declare mes touches et toutes leurs fonctions avant ?
(je ne sais pas, moi tout ce que j'ai reussi a faire c'est afficher en boucle le tableau en meme temps que le jeu lol)

Puis il m'est venu l'idée de mettre toute la partie code du graph dans une SUB, pour que ça fasse moi chargé.

Mais je n'arrive pas a m'en servir.

je fais "edition" new sub;
je copie mon graph,
et je rentre avant ma boucle principale; GOTO SUB graph, ou DECLARE SUB graph,
mais je n'arrive a rien. (désapprouve)


Pouriez vous me dire comment je pourrais associer ces 2 codes (les 2 walls)

Merci.

Encore une chose, j'ai lu sur un tuto, que pour coloré le fond d'un texte (vous comprendrais dans mon deuxieme wall, le fond noir du texte ne fait pas jolie dans le cadre de couleur.)

Il fallait ecrire
color, B, X
B étant la couleur du texte, et X la couleur du fond de texte.
Je n'y suis jamais arrivé, j'ai toujours un message d'erreur.

Voila Merci (sourire)
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Msie 6 - Posté le 19/12/2006 à 22:32
(héhé Salutations.

Juste une réponse rapide (et incomplète).
Pour obtenir la présentation suivie du jeu, c'est enfantin.

Lignes de présentation (Wall 99)
SLEEP ' provoque l'arrêt du programme jusqu'à ce que tu presses une touche quelconque.
Lignes de Jeu. (Wall 98)

La COLOR B, X ne fonctionne qu'en SCREEN 0 et d'autres mais pas en SCREEN 12, et pas de dessin possible dans ce mode ce qui est dommage.
Dans la fenêtre Qbasic, ecris COLOR, positionne le curseur dessus et presse F1 : et tu sauras tout ....

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Msie 6 - Posté le 20/12/2006 à 09:03
(héhé Salutations.

Petit complément : dans un même programme, tu peux avoir successivement plusieurs SCREEN différents (Sans SCREEN, tu es en SCREEN 0). Petit exemple :

LOCATE 10, 10: COLOR 0, 2
PRINT "JE SUIS, PAR DEFAUT EN SCREEN 0,"
LOCATE 12, 10: PRINT "ET JE PEUX ECRIRE (25 Lignes) EN UTILISANT DEUX COULEURS"
LOCATE 14, 10: PRINT " PAS DE DESSIN POSSIBLE"
LOCATE 20, 10: COLOR 0, 11: PRINT "PRESSER UNE TOUCHE QUELCONQUE "
SLEEP
CLS : SCREEN 12
LOCATE 10, 10: COLOR 13: PRINT "EN SCREEN 12 --- > une SEULE COULEUR (30 Lignes)"
LOCATE 20, 10: COLOR 14: PRINT "MAIS JE PEUX DESSINER"

Donc, à toi de voir la méthode à utiliser …

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
sasuke83
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 20/12/2006 à 12:23
Merci beaucoup (clein d'oeil)

Est-ce que je peux mettre ma presentation dans une sub ?

si oui comment faire ?

merci
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Msie 6 - Posté le 20/12/2006 à 13:11
(héhé Salutations.

Tu recherches les complications.
Dans ton programme, tu commences par faire la présentation en SCREEN 0 (Donc, plusieurs couleurs pour les PRINT).
Tu mets un SLEEP pour avoir le temps de la lire.
Tu ajoutes ensuite le jeu en SCREEN 12 (sans SUB).
Et je pense que cela devrait 'fonctionner'.

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
sasuke83
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 20/12/2006 à 13:42
Merci (clein d'oeil)

Je vais tenter, et je pense aussi que ça devrais fonctionner,

Mais je voudrai quand meme pouvoir mettre la partie du tablo de presentation dans 1 sub pour "decharger le code", et surtout que ça va faire plaisir au prof de voir au moin une sub car c'est noté.

Merci (clein d'oeil)
sasuke83
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 20/12/2006 à 14:02
j'ai trouvé, il suffit de faire un call (nom de la sub)
suivi bien evidament d'un SLEEP, et d'un CLS

ça marche niquel merci (clein d'oeil)
sasuke83
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 20/12/2006 à 18:46
Voilà j'ai fini mon programme, ou presque.



Wall (100) : Afficher le code source - Ouvrir dans une nouvelle fenêtre


Si jamais quelqu'un a le courage de le tester,

pouriez-vous me dire pourquoi l'angle a haut a gauche est-il mordu ? alors qu'aucune de mes balles part de là (question)

Veriez-vous où je pourrais placer une "petite" FUNCTION, pas trés dure, j'arrive pas vraiment a gérer les functions, j'ai toujours des mess d'erreurs,
Je sais ce n'est pas vraiment utile içi, mais ça me ferrais grapiller quelques points (clein d'oeil)

Et si jamais vous voyez des erreurs dans le code (clein d'oeil)

Merci (clein d'oeil)
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Msie 6 - Posté le 20/12/2006 à 20:49
(héhé Salutations.

Félicitations, ton programme fonctionne correctement.

Cependant, je vais me permettre quelques critiques amicales :

- - > Sur mon PC les balles se 'traînent' lamentablement. Pour effectuer la temporisation qui sert de ralentisseur va consulter :

- http://www.neliger.com/page-qbasic_un_systeme_de_pause_precise.php

- http://www.progboards.com/sujet-960.php

- http://www.progboards.com/sujet-723.php

Il est nécessaire que ton ralentisseur soit valable quels que soient les GigaHerz du PC.

Pour les commandes, il vaut mieux prévoir :

SELECT CASE touche
CASE "A","a" ' Inutile de mettre le code ASCII
…/…
CASE "Q","q" ' Tu peux mettre plusieurs valeurs
…/…
CASE CHR$(0) + "H", "8"
…/…
CASE CHR$(0) + "P", "2"
END SELECT

De cette façon, inutile de verrouiller en majuscules et les touches numériques peuvent servir.

Je n'utilise ni SUB ou FONCTION …
Ce sera tout pour le moment. Bonne continuation, tu es sur le bon chemin.

MAIS, il est nécessaire de régler ton régulateur de vitesse.

AJOUT : (En complément, je te conseille de doubler les pas des balles et d'adopter le ralentisseur indiqué sous le tien.

pasX = 4 ''
pasX2 = 2 ''' Définit la valeur des pas des cercles
pasY = 4 '''
pasY2 = 2 ''
…/…
' FOR tempo = 1 TO 80000 '*** pour ralentir les boules
' NEXT
Debut! = TIMER
DO
LOOP UNTIL TIMER > Debut! + .001

Tiens nous au courant du résultat)

(héhé Salutations.


Edité par SFLPMEA ( 20/12/2006 22:57:07 )
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Msie 6 - Posté le 21/12/2006 à 09:52
(héhé Salutations.

J'ai recherché pourquoi l'angle en haut, à gauche était mordu par un quart de cercle.
Explication : La première fois que tu entres dans la boucle générale, les coordonnées des centres des anciens cercles ont une valeur de 0, et tu les dessines donc en haut à gauche.
Il te faut ajouter :
Xold = Xcercle : Yold = Ycercle : Xold2 = Xcercle2 : Yold2 = Ycercle2
Juste avant
'- - *** BOUCLE GENERALE ***- -

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
sasuke83
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 21/12/2006 à 12:31
Merci SFLPMEA (sourire)

Voila j'ai fais la modif,
j'ai mit un pas de 3 au lieu de 4 car si les boules se touchent avec un pas de 4 et de 2, ça laisse une petite trace bleue à l'endrois de la colision.

J'ai donc mis
FOR tempo = 1 TO 30000 au lieu de
FOR tempo = 1 TO 80000

+
debut! = TIMER ' boucle qui va reguler la vitesse
DO ' pour les pc qui calculs trop vite
LOOP UNTIL TIMER < debut! + .001

(j'ai rectifié le .01 de mon wall en 0.001)

C'est bon ? ça donne quoi pour ton pc ?



Wall (101) : Afficher le code source - Ouvrir dans une nouvelle fenêtre


je viens de me demander, comment tu as fais pour tester mon code, car je modifis mon .bas en .txt, je fais copier/coller, et je poste.

Donc normalement il manque le contenu des SUB non ?

sinon y a t'il une autre procédure pour inculre les SUB et FUNCTION dans un wall ?

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,120 s - Crédits - Stats
1 connecté