Je recherche des exercices pour le qbasic de niveaux progressifs avec de préférence des aides et la solution au cas ou je bloque.
Si tu veux un début de truc pas trop mal, tu peut aller là, j´ai commencer sur le forum de luxregina un début de tuto avec quelques exercice. malheureusement pas très avancé : http://luxregina.free.fr/forums/index.php ( rubrique VB, mais c´est bien du qb)
je connais déjà ce forum mais merci quand même.
C´est bien fait mais je croyait que c´était de l´ordre de 1 leçon par jour si je me souviens de ce qu´on m´a dis.
bah...
Pour ma partie j´ai effectivement fait les 3 premier tuto en 3 jours... Donc en quelques sortes c´était vrai. Mais après, ben, euh... j´ai plus ou moins arrété.
J´ai la moitié de la leçon 4 et 5 sur mon DD mais elles sont inachevé, pourtant je commencais a atteindre des truc interessant d´algorithmie.
Si tu veux que je t´indique des trucs interesant sur le qb, pourrait-tu me dire de quel niveau tu es dans ce langage.
ben disons que je suis débutant, je sais pas faire grand chose mais j´aimerai m´interresser au graphisme un peu , enfin leger parce que taper 50000 data c sans moi, juste circle ou des trucs comme ça.
J´aimerai également voir comment on peut gerer une collision.
Pendant qu´on y ´est g un blem dans un de mes programme, je vais mettre les source en dessoud.
CLS
SCREEN 12
PRINT " haut = 8"
PRINT " bas = 2"
PRINT " gauche = 4"
PRINT " droite = 6"
PRINT " esc = quitter"
COLOR 2
PRINT " appuyez sur une touche pour continuer"
DO
LOOP UNTIL LEN(INKEY$)
CLS
COLOR 9
DIM x AS LONG
DIM y AS LONG
DIM a AS LONG
x = 40
y = 60
a = 25
FOR cercleX = 40 TO 580 STEP 60
FOR cercleY = 60 TO 360 STEP 55
CIRCLE ( cercleX, cercleY), 25
SOUND cercleX + cercleY, 1
PAINT ( cercleX, cercleY)
NEXT
NEXT
COLOR 5
CIRCLE ( 40, 60), 25
ON KEY(1) GOSUB action
ON KEY(11) GOSUB haut
ON KEY(14) GOSUB bas
ON KEY(12) GOSUB gauche
ON KEY(13) GOSUB droite
KEY 15, CHR$(0) + CHR$(48)
KEY(1) ON
KEY(11) ON
KEY(14) ON
KEY(12) ON
KEY(13) ON
KEY(15) ON
DO
LOOP UNTIL INKEY$ = CHR$(27)
END
haut:
CIRCLE ( x, y), a, 9
y = y - 55
CIRCLE ( x, y), a
RETURN
bas:
CIRCLE ( x, y), a, 9
y = y + 55
CIRCLE ( x, y), a
RETURN
gauche:
CIRCLE ( x, y), a, 9
x = x - 60
CIRCLE ( x, y), a
RETURN
droite:
CIRCLE ( x, y), a, 9
x = x + 60
CIRCLE ( x, y), a
RETURN
Bon j´ai 2 blem je n´ai jamais réussit à utilise la touche enter bien qu´on me l´ai exppliqué, je crois meme que c toi qui me l´a expliqué.
2. Je n´arrive pas à mettre une limite je peut monter et decendre à l´infinit et ça ça me plait pas je veux pour m´arreter aux derniers cercles du haut et du bas et aux derniers cercles sur les cotés.
Je vous remercie d´avance pour vos aides et vos explication
http://wall.cours-info.net/?id=218&numero=non
j´ai mis une version corrigé de ton code.
Comem je te l´ais dit la dernière fois, je pense qu´il est inutile d´utiliser on key dans ce cas là. C´est inutilement complexe et la fonction inkey$ est largement suffisante.
Le programme que je t´ai mis utilise donc inkey et bloque tout betement le cercle au bord de l´écran. Je l´ai pas testé, mais je suppose qu´il doit marcher.
Bien sur, je ne l´aurais pas écrit comme ça, mas j´ai essayé de garder la structure que tu lui avait donnée.
l´instruction : SOUND cercleX + cercleY, 1
me fait bien rigoler, c´est amusant, comme idée, je ne sais pas si tu voulais vraiment faire ça, mais si oui, c´est drôle.
si tu veux faire des graphisme tu as aussi la possibilité d´utiliser draw et play pour la musique.
De plus, tu n´est pas obligé de passer par les DATA, tu peut lire des fichiers type bitmap assez facilement dès que tu auras un peu progressé ( en 256 ou 16 couleurs selon ton mode graphique) pour faire des sprite.
Pour gérer la collision, comem le dirait le SDK de DX ( en tout cas le 5, le dernier que j´ai lu) c´est tellement simple que les programmeur n´ont pas voulu implanté cette fonction et te laisse le faire !
Il te faut juste les coordonné de tes sprites et tu vérifie qu´elle ne soit pas sur d´autre, si tu as besoin d´aide sur la réalisation de ce genre de truc, je peut essayer de t´aider.
merci infiniment.
Je vais vraiment essayé d´utiliser l´instruction inkey$, je vais regarder ce que donne le programme.
Pour le son c ce que je voulais faire mais je l´ai pas fais exprès en fait j´avais pas encore tres bien compris comment fonctionnais l´instruction sound ( quoi qu´elle me surprend toujours).
pour une fonction plus puissante, essaye play qui te permet de choisir les notes la gamme, la durée etc... plus simplement que par sound.
Ouai mais je peux utiliser play pour faire la
meme chose que sound pour les cercles ( sans tout écrire 1 part 1)
j´ai pas encore testé le programme mais je pense que j´aurais encore besoins d´un petit éclairecicement quand je l´aurait testé.
Encore un truc tu connais combien de langage de programmation?
bah, non pour ce que tu veux faire sound est bien, mais si tu veux un truc un peu plus poussé, esaye play.
Surtout, avec play, tu peut faire la usiqu et le programme continu en même temps, ce que tu ne peut pas avec sound.
les langage que je connait, c´est le QB et le VB très bien(en tout cas assez bien).
Plus je suis me suis mis au C/C++ alors je sais en faire suffisament poru ce que je veux ( surtout de l´algorithmie), mais je ne connait qu´une toute petite partie du langage...
et je programme un interpréteur de RPL ( le langage des vieilles HP), donc on peut dire que je connait ce langage, même si j´en fait une interprétation libre.
J´ai un peu honte de ce que je vais te demander mais je connais juste de noms.
Peut tu me definir ce qu´est un SDK, j´en n´ai entendu parlé pour le devellopement de mod pour certain jeu comme HL2 par ex, mais je ne sais pas à quoi est destiner le sdk.
encore un truc je ne peux pas utiliser de sdk pour le qbasic ? ( Je sdk de direct x c´est pour le c++ non ? ) puis il dit falloir un niveau de programmation assez poussé ce qui n´est pas mon cas.
Voilà j´attend t´as réponse.
encore un truc le programe tu tu m´a corrigé ne fontionne pas enfin disons que le problème et que pour se déplacer par ex sur la droite il faut appuye plein de fois sur la droite.
Mais un truc me choque dans t´a correction.
Je t´en donne un ex:
if y<0 then y=0
alors que si on regarde au debut les coordonnées
c : FOR cercleY = 60 TO 360 STEP 55
alors moi j´ai pensé écrire if y < 60 then y = y +60.
C comme ça pour les autre aussi ( mais ce que j´ai fais ne marche pas et je ne comprend pas pourquoi.
Un ederniere chose pourquoi ne doir t´on pas mettre de end if ( moi j´ai toujours vu comme ça).
Merci
un SDK, c´est une interface ( de programmation) pour utiliser quelque chose qu´un autre programmeur a crée ( et surtout la doc qui va avec).
Même si théoriquement on pourrait utiliser DX avec QBASIC, je n´ai jamais entendu parler de qqn qui l´aurait fait.
le SDK de DX existe pour le C+, le VB.NET et le C# ert oui, il faut un niveau pas très très bon, mais quand même.
le programme que je t´ais passé, marche, je l´ai testé, exécute le en plain écran si tu dois appuyer plein de fois sur le touche.
pour le y<60, tu as raison, mais c´était juste que j´ai écrit ça vite, mais ça ne change rien au problème dela manière, c´était pour te montrer comment bloquer le desin au bord de l´écran.
Pourquoi je n´ai pas utilisé de endif ? tout simplement parce que je n´ai pas utilisé de if...
j´ai utilisé autre chose, le select case.
Commment ça marche ?
facile, tu commence par
Select Case NomVar
ensuite tu fait
Case " truc"
du code
. ..
case " machin"
autre code
. ..
end select
ça ve dire que si la variable contient truc alors il fera le code qu´il y a dans truc, si elle contient machin il fera celui qu´il y a après case " machin".
Bien sur, il y a d´autre manière de s´en servir, mais essaye déjà comme ça, ça sera pas mal.
bon ben je suis encore là.
Quand tu me dis de l´executé en plein écran, il est déjà en plein écran puisque j´ai mi screen 12.
Autre chose je souhaiterai écrire dans le cercle selectionné.
Pour celà il faut donc que je place le curseur
j´ai donc écris: locate x, y
et là il me dit " appel de fonction interdite", et quoi que je mettes meme si c des chiffres il me dis la meme chose.
Un 3eme point on rame tous comme ça quand on commence ou c´est moi qui m´y prend mal.
Ca dépend du contexte généralement. Moi j´ai pas mal ramé au début, parce que j´avais un bouquin que je trouve pas vraiment adressé aux débutants, avec un langage ( le C) assez peu appréciable. J´ai plus appris à bidouiller qu´à programmer.
Essaye de reprendre avec un autre cours ou un autre langage, peut-être que tu y´arriveras mieux.
locate x,y
x et y ne sont pas des coordonné en pixel mais en caractère :
locate 5,10
c´est la 5ième ligne et le 10ièmes caractère ( donc en plus l´ordre est inversé, c´est plutot y,x ( en tout cas, je crois, mais c´est a vérifié).
Tout ça pour dire que tu nepeut pas mettre de trop grand nombre dedans et que tu doit vérifier qu´elle est la taille en pixel d´un caractère pour faire la conversion.