Forum Liberty Basic France

Discussion Générale » Quelques propos..... Sur: Les exemples
Le 20/03/2012 à 19h20

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Reprise du message précédent

Oui, mais il fallut raboter 4 pixels.
Tu a bien vite fais de régler le soucis. Tu ne serais pas Mathematicien, par hazard ?
A te voir faire, sprites ou images ça n'a pas l'air de te poser problème, et l'image en fond pas d'avantage.
et d'ailleurs, je me demande bien ce qui pourrait te poser probleme.
Mais ne pense tu pas que la gestion d'images est plus orthodoxe, plus concrete, sera plus facile pour moi.
Toi, tu voltige, mais moi je veux bien avancer un peu dans mon coin.
J'aurais une question (idiote sans doute): D'aprés toi, et en gros; le ' handle$' de ' sub Dispball' fait l'économie de quel volume.en variables, et en lignes.
Il y aurait aussi la: "Colselected=1*-1" ?



Edité par Roland Le 20/03/2012 à 20h30
____________________
Roro

   
Le 20/03/2012 à 20h39

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Je me rappelle avoir eu 1 en math quand j'ai passé mon BAC.

"Au royaume des aveugles les borgnes son roi."

Cesse donc de prendre les codes que j'écris comme LA référence : c'est loin d'être ce qui se fait de mieux dans le domaine.
C'est bien dommage que personne d'autre ne participe à ce forum, afin qu'au moins tu puisses t'en rendre compte.

Le dernier code par exemple est vraiment fait à l'arrache...

Tu y arriveras beaucoup mieux dès que tu t'intéresseras plus à connaitre JB que moi.

Avec tout ce que j'ai essayé de t'expliquer patiemment (du mieux que j'ai pû en tout cas), je ne sais plus trop quoi te dire ou écrire pour que tu te lances.

Bien que je n'ai pas encore absolument tout compris à ton jeu, Je suis simplement curieux de le voir fonctionner.
Vu que tu te fais une montagne d'un petit caillou, je suis bien obligé de coder quelque chose...

Roland:
Mais ne pense tu pas que la gestion d'images est plus orthodoxe, plus concrete, sera plus facile pour moi.

Pour la Xième fois : OUI.


Roland:
Il y aurait aussi la: "Colselected=1*-1" ?

Il semblerait qu'en JB, on ne peut pas affecter une valeur négative directement à une variable, mais je n'en suis pas sûr.

"handle$" derrière le nom d'une SUB est simplement la syntaxe obligatoire lorsque la SUB est appelée par un bouton ou avec "when etc..."



@+



Edité par cassiope01 Le 20/03/2012 à 21h07
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 20/03/2012 à 21h58

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Pour le 1*-1, je m'en doutais, Mais pour le handle$, ça fait un moment que je suis sur l'aide et je ne l'ai pas vu dit aussi clairement.
1 en Math !? Et ben tu t'es bien rattrapé.
Je vais faire avec des images, mais je vais quand mème me servir de tes bouts,
Je vois bien que c'est fait à l'arrache, et c'est bien ça qui est impressionant.
Ce jeu est en fait un hybride de casse brique et de tétris, sauf que dans tétris on ne choisis pas las pièces,Et que les casse briques sont un peu spidant selon le niveau, tendis que là on a le temps de réfléchir, avec une part de hazard dans l'arrivée des billes.
Je suis lancé,mais tu sais quand tu double un vélo à 130 Km/h ,le vélo, tu le vois immobile.
ça doit etre à cause de la vitesse de la lumière. ;) et tout cas merci pour ta patience et ton temps. :)
____________________
Roro

   
Le 21/03/2012 à 07h11

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Après un bon nettoyage, je m'amuse à empiler une seule couleur par colonne... en essayant en plus de remplir chaque colonne à peu près à la même hauteur : c'est pas si facile tant le hasard du tirage n'aide pas tellement... j'en ai la tendinite à l'index :lol
Code VB :
    nomainwin
 
    GLOBAL NbXmax, NbYmax, dc, MapWidth, MapHeight, NumBille, source$, LigneSeuil, ColSelected
 
    NbXmax = 19 'nombre de billes en horizontal
    NbYmax = 14 'nombre de billes en vertical
    dc = 43  'size of a cell in pixels
    MapWidth = NbXmax*dc
    MapHeight = NbYmax*dc
 
    dim cell(NbXmax+1,NbYmax+1)
    LigneSeuil = 2   'nombre de lignes de billes dévoilées du haut...

    WindowWidth = MapWidth+15
    WindowHeight = MapHeight+70
    UpperLeftX = (DisplayWidth-WindowWidth) / 3
    UpperLeftY = (DisplayHeight-WindowHeight) / 2
 
    loadbmp "fond", "img\Fond_430x600.bmp"
 
    source$ = "Bleu Jaune Orange Rose Rouge Vert VertC Violet Noire"  'chaine des couleurs
    for b = 1 to 9
        loadbmp "Boule";b,"img\"+word$(source$,b)+".bmp"   'chargement des images des billes, les Sprites.
    next
 
    statictext #w.txt "",10,12,310,20
    graphicbox #w.map, 5, 40, MapWidth+2, MapHeight
    open "    TEST Jeu..." for window_nf as #w  'graphics_nf_nsb
    #w "trapclose [quit]"
    #w.map "down; fill black"
    for b=1 to 8
        #w.map "addsprite ball";b;" Boule";b;" Boule9"
    next
    ColSelected = 1*-1
    call StoreMasks
 
    #w.map "when mouseMove [coord]"
    #w.map "when leftButtonDown [SelectBall]"
 
    gosub [rempli]
 
    wait
 
    [SelectBall]
        timer 0
        bX = int(MouseX/dc)
        bY = int(MouseY/dc)
        if ColSelected > -1 then
            if cell(ColSelected,1) > 0 then
                cell = bY * NbXmax + bX
                #w.map "drawbmp effB";cell;" ";bX*dc;" ";bY*dc
                #w.map "cyclesprite ball";cell(ColSelected,1);" 0"
                #w.map "spriteimage ball";cell(ColSelected,1);" Boule";cell(ColSelected,1)
                #w.map "drawsprites"
            end if
        end if
        select case
        case bY < LigneSeuil
            ColSelected = bX
            if cell(ColSelected,1) then
                timer 300, [animate]
            end if
        case bY > LigneSeuil
            timer 0
            ' déplacement de la boule depuis ColSelected/ligne 2 vers la colonne mX dernièrement cliquée.
            call MoveBall ColSelected, bX
            ColSelected = 1*-1
 
            ' ici -> futur conséquences du placement de cette bille...

        end select
        #w.map "discard; flush"
    wait
 
    [animate]  'clignotement
        #w.map "spritexy ball";cell(ColSelected,1);" ";bX*dc;" ";dc
        #w.map "cyclesprite ball";cell(ColSelected,1);" 1"
        #w.map "drawsprites"
    wait
 
    [coord]
        mX = int(MouseX/dc)
        mY = int(MouseY/dc)
        gosub [infos]
    wait
 
    [rempli]
        #w.map "color lightgray"
        for x=0 to NbXmax
            #w.map "place ";(x+1)*dc;" ";MapHeight-50  ' les petits traits de colonne en bas
            #w.map "goto ";(x+1)*dc;" ";MapHeight
        next
        for y=0 to LigneSeuil-1           'les 2 premières lignes
            for x=0 to NbXmax
                call DispBall "#w.map", x*dc, y*dc
            next
        next
    return
 
    [infos]
        if mX<=NbXmax and mY<=NbYmax then
            #w.txt "pixels : ";MouseX;" / ";MouseY;_
            space$(9);"Cell ( ";mX;" , ";mY;" ) = ";cell(mX,mY);_
            space$(15);"Couleur : ";word$(source$,cell(mX,mY))
        end if
    return
 
    sub MoveBall Dx, Ax   'Colonne Départ,  Colonne Arrivée
        if Dx < 0 then exit sub
        if cell(Ax,LigneSeuil+1) > 0 then exit sub
        #w.map "when mouseMove"           'désactivation captation souris
        #w.map "when leftButtonDown"
 
        'à repenser par rapport à LigneSeuil...
        call EffBall Dx, 1
        ballMoved = cell(Dx,1)
        cell(Dx,1) = cell(Dx,0)
        cell(Dx,0) = int(rnd(0)*8)+1      'tirage nouvelle bille entrante
        call EffBall Dx, 0
        #w.map "spritexy ball";cell(Dx,0);" ";Dx*dc;" ";0*dc
        #w.map "drawsprites"
        #w.map "spritexy ball";cell(Dx,1);" ";Dx*dc;" ";1*dc
        #w.map "getbmp bckgrd 0 0 ";MapWidth;" ";MapHeight
        #w.map "background bckgrd"
        #w.map "drawsprites"
        #w.map "spritexy ball";ballMoved;" ";Dx*dc;" ";2*dc
        #w.map "getbmp bckgrd 0 0 ";MapWidth;" ";MapHeight
        #w.map "background bckgrd"
        #w.map "drawsprites"
        st = Ax - Dx
        if abs(st)>0 then
            if st > 0 then st = 1 else st = 1*-1
            for x=Dx to Ax step st
                #w.map "spritexy ball";ballMoved;" ";x*dc;" ";2*dc  'mouvement horizontal si nécessaire
                #w.map "drawsprites"
                call pause 50
            next
        end if
        for y=3 to NbYmax-1
            if cell(Ax,y) = 0 then
                #w.map "spritexy ball";ballMoved;" ";Ax*dc;" ";y*dc  'mouvement vertital
                #w.map "drawsprites"
                call pause 50
                Ystop = y      'mémorise la ligne où la bille se pose
            end if
        next
        cell(Ax,Ystop) = ballMoved
        #w.map "getbmp bckgrd 0 0 ";MapWidth;" ";MapHeight
        #w.map "background bckgrd"
        #w.map "when mouseMove [coord]"
        #w.map "when leftButtonDown [SelectBall]"           'réactivation captation souris
    end sub
 
    sub EffBall Cx, Cy   'effacement de la bille qui est en Cx,Cy
        #w.map "drawbmp effB";Cy*NbXmax+Cx;" ";Cx*dc;" ";Cy*dc
        #w.map "getbmp bckgrd 0 0 ";MapWidth;" ";MapHeight
        #w.map "background bckgrd"
    end sub
 
    sub StoreMasks
        #w.map "drawbmp fond 0 0"
        for y=0 to NbYmax
            for x=0 to NbXmax
                nMask = y * NbXmax + x
                #w.map "getbmp effB";nMask;" ";x*dc;" ";y*dc;" ";dc;" ";dc
            next
        next
        #w.map "discard; flush"
    end sub
 
    sub DispBall handle$, px, py
        mX = int(px/dc)
        mY = int(py/dc)
        cell(mX,mY) = int(rnd(0)*8)+1
        #w.map "getbmp bckgrd 0 0 ";MapWidth;" ";MapHeight
        #w.map "background bckgrd"
        #w.map "spritexy ball";cell(mX,mY);" ";mX*dc+1;" ";mY*dc
        #w.map "drawsprites"
        #w.map "discard; flush"
    end sub
 
    sub pause temp   'pause en millisecondes
        timer temp, [temps]
        wait
        [temps]
        timer 0
    end sub
 
    [quit]
        close #w
        end
    wait


C'est là que je me rend compte mieux que le nombre de lignes de billes dévoilées en haut pourrait participer au niveau, ainsi que la largeur du tableau...!



Edité par cassiope01 Le 21/03/2012 à 08h19
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 21/03/2012 à 09h35

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Youpie ! T'est ecore là.... Je craignais que mon dernier message ne sonne comme un adieu.
Je n'y résiste pas, il faut que je regarde de suite ce que je viens de copier ,là juste audessus...........a+
____________________
Roro

   
Le 21/03/2012 à 10h08

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
Youpie ! T'est ecore là.... Je craignais que mon dernier message ne sonne comme un adieu

Au contraire, c'est peut-être le premier message où tu parles de ton jeu de manière intéressante :top
En donnant ton avis sur la toute dernière phrase de mon dernier message ça deviendrait même, comment dire, constructif :top



Edité par cassiope01 Le 21/03/2012 à 10h23
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 21/03/2012 à 10h23

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Je constate que l'équilibre est soumis au rapport: nombre de types/largeur.
Il serait dommage de réduire la largeur, il faut donc augmenter le nombre de types.
A tu une idée de ce que ça coute ? Parce que derrière, il y a la gestion des tests d'alignement.
.......et le reste...... :( il faut trouver un compromis, on est content d'avoir la main sur la largeur.
Y a une option qui ne couterait pas trop cher. Ce serait d'interdire l'alignement vertical de deux billes identiques.
Mais il ne faudrait pas que ce soit trop pénalisant.
Mais je n'ai pas encore regardé si tu avait personnifié les billes, ce qu'il faudra bien faire à un moment.
De mon coté je commente ton code avec des: " ?" , des "OK " et des " < > " comme balises d'accés.
Il faut bien que je t'avoue mon vice, qui est de prendre mon pied à bricoler le travail des autres.
Il faut commencer par y acceder, c'est déja trés intérréssant, ensuite, on découvre les façons de faire, de concevoir, de penser, avec des surprises, qui me font l'effet d'un bon sketch, ou d'une bonne pièce de théatre.
Ce n'est pas une raison pour glisser dans ton code des tournures "pour rigoler", j'ai déja pas mal de " ?". ;)



Edité par Roland Le 21/03/2012 à 10h39
____________________
Roro

   
Le 21/03/2012 à 10h35

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
A tu une idée de ce que ça coute ? Parce que derrière, il y a la gestion des tests d'alignement.
.......et le reste...... :(


Rien du tout puisque c'est une variable qui donnera le nombre de billes alignées à rechercher.
Que cette variable soit égale à 2 ou 8, de toute façon c'est la même boucle qui s'occupera de la détecter !
C'est d'ailleurs grâce à la valeur donnée à cette variable qu'on pourra changer le niveau par exemple.

Par contre question équilibre, tout à fait d'accord sur le rapport Types/Largeur.
Evidament, le choix de la hauteur est très important aussi...!

Une astuce: nomme tes fichiers de type de bille par le même nom, avec juste un numéro à la fin pour les différencier...
C'est génial pour les charger en début de code. En plus tu pourrais ainsi très facilement décider de ne charger que les x premiers par exemple...



Edité par cassiope01 Le 21/03/2012 à 11h34
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 21/03/2012 à 11h57

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Le rapport: type/largeur, sans option, à l'air de tourner autour de 8/5. Pour trois identiques alignées
La distribution aléatoire à l'air bien
La moindre option modifie le rapport, évidemment.
La hauteur ne détermine, je pense, que la durée de la partie
Je fait des sprites avec les boules de noel pour voir si il faut regler la lumière pour les accorder aux billes
Daccord pour la detection par trois, quatre ou cinq, mais le nombre de types à détecter n'est pas indifférent
il me semble.
____________________
Roro

   
Le 21/03/2012 à 12h56

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Oula ! La machine à faire les sprites, qui est livrée avec 'Liberty', n'aime pas les boules de noel.
Elle m'a fait des sprites tout sales, la boule la plus fonçée, elle a pas voulu la discriminer.
Sur le fond noir, c'est bon. Mais sur la photo, c'est la "catha..."
Je tente de rattraper l'affaire, c'est loin d'etre évident
Pour garder la liberté d'integrer ce qu'on veut, il faut laisser les billes/boules sur fond noir ,et mettre la photo comme dans ton jeu.
Ou tu a trouvé tes billes, tu les a fabriquées ? Tu a fait les sprites avec la machine ?



Edité par Roland Le 21/03/2012 à 13h04
____________________
Roro

   
Le 21/03/2012 à 14h45

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Ouuiinn ! Jai nettoyé les sprites Sur fond noir ça va , mais regarde, si j'arrive à mettre l'image.
Sur la vue ;A La boule "araignée" arrive, elle est propre.
Sur la vue :B elle vient d'etre jouée, elle est en bas, bien propre.
Mais regarde sur la vue :C ce qui se passe quand elle prend la plce de la boule "rouge à arabesque"
____________________
Roro

   
Le 21/03/2012 à 15h34

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
On dirait que les boules ne sont pas véritablement éffaçées, remplaçée dans ce cas par du noir.
Qu'est ce ça va etre avec les anchois !, et une pizza sans anchois!, ah! non alors.

Meme phénomène avec boule rouge remplaçant boule blanche (les boules ne sont pas exactement formatées)
il s'agit bien d'une surimpression.
Pourtant je vois bien ta ligne d'effacement qui est conforme aux canons de "l'aide "avec ses "get et ses "draw...
Est-ce qu'il n'y a pas moyen de faire un vrai carré noir (noir fonçé sur carton épais) et le coller avec de la bonne colle.
Le tout assorti d'une bonne chasse aux fantomes de boules.



Edité par Roland Le 21/03/2012 à 16h08
____________________
Roro

   
Le 21/03/2012 à 16h10

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Mais qu'est-ce que tu t'emmerdes encore avec les sprites ????
Je croyais que tu avais enfin décidé de ne travailler qu'avec de simples "bitmap" ?

Si il y a un truc qui m'irrite au plus haut point sur les forums c'est bien les dialogues de sourds à cause des messages lus en "diagonale" voire même pas lus du tout, et des réponses ou échanges en conséquences bien sûr.
De l'énergie perdue pour tout le monde.




Roland:
Le rapport: type/largeur, sans option, à l'air de tourner autour de 8/5. Pour trois identiques alignées
La distribution aléatoire à l'air bien
La moindre option modifie le rapport, évidemment.
La hauteur ne détermine, je pense, que la durée de la partie
Je fait des sprites avec les boules de noel pour voir si il faut regler la lumière pour les accorder aux billes
Daccord pour la detection par trois, quatre ou cinq, mais le nombre de types à détecter n'est pas indifférent
il me semble.


8/5 ??? c'est à dire 8 types / 5 colonnes en largeur ????????

Je ne comprend absolument pas ta dernière phrase !!


@+



Edité par cassiope01 Le 21/03/2012 à 16h15
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 21/03/2012 à 18h39

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Le rapport type de bille (8) / largeur du tableau (5) est le rapport minimum (8/5)=1.6 environ.
(en précisant, sans option), pour que le jeu soit jouable.
si on diminue le rapport en faisant par exemple: 8/11 =0.7 environ, (inférieur à1.6), on peut, sans
difficulté, (et toujours sans option), aligner: 6 ,7,8 billes, puisqu'il y a de la place ou les poser en attendant que la bonne couleur arrive.
D'où la necessité des options, ou celle d'augmenter le nombre de type (couleur), qui normalement doit rarefier les sorties identiques.
Je n'ai pas encore tout compris du fonctionnement du test d'alignement de ton jeu de billes, c'est pourquoi, je demande si l'augmentation du nombre de type ( de couleurs) ne va pas rendre plus raide la gestion de ce test....
....Je ne lis pas en travers, ça fait trop mal aux muscles du cou....
Ce qui détermine qu'une chose est un sprite, ce n'est ni sa forme, ni ce qu'il contient, ni la présence ou l'absence de masque.
Ce sont les contraintes qu'implique sa manipulation
J'aurais une question, qui va te paraitre incongrue, mais qui ne l'est pas.

A partir de rien, combien de lignes faut-il pour afficher une des billes ou boules seule (42x42)
Au mileu d'une fenetre (100x100) , de couleur bleue ?.....Par le moyen de ton choix. Hormis celui consistant à cacher la moitié d'une image de 42x84. ?



Edité par Roland Le 22/03/2012 à 01h40
____________________
Roro

   
Le 21/03/2012 à 20h12

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Une bille noire sur fond noir, il faut se souvenir ou elle est tombée, sinon, ...surprise!



Edité par Roland Le 22/03/2012 à 01h09
____________________
Roro

   
Le 22/03/2012 à 07h44

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
A partir de rien, combien de lignes faut-il pour afficher une des billes ou boules seule (42x42)
Au mileu d'une fenetre (100x100) , de couleur bleue ?.....Par le moyen de ton choix. Hormis celui consistant à cacher la moitié d'une image de 42x84. ?


4 lignes. 1 commande pour l'affichage proprement dit.

loadbmp "nom_Image", "fichier.bmp"
open " TEST Jeu..." for graphics_nf_nsb as #main
#main "down; fill blue"
#main "drawbmp nom_Image x y" '<-- affichage


Je t'ai déjà expliqué tout ça en page 4 Le 18/03/12 à 08h01



Edité par cassiope01 Le 22/03/2012 à 07h55
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 22/03/2012 à 12h03

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Ouf! Je craignais que tu le prenne mal. Ta patience t'honore.
Loin, trés loin de moi, l'idée de vouloir te prendre en défaut, ou de te critiquer.
J'ai lancé tes quatres lignes, aprés avoir mis dans un dossier, le ".bas" et le ".bmp" et mis le nom du ".bmp" à sa place.
Je me suis chopé le message dont je commence à avoir l'habitude.
J'ai donc fait les ajouts, pour obtenir le résultat escompté.
Le 'com de la 9° ligne est l'illustration de la difficulté de communiquer à travers les écrans.
Qui n'est pas due à la mauvaise volonté des uns ou des autres, comme tu semble le penser.
Le com de la ligne 13, ne sera pas sans te rappeler ce que je disais au sujet des commentaires "action par action", et de la necessité de rédiger un additif à l'aide conçernant la syntaxe.
A la ligne 7, ce genre de variable, qu'on se traine de bout en bout d'un programme.est l'illustration de ce que j'appelle: une programation "saine".
Encore merci pour ta patience, sans ton aide, j'aurais certainement abandonné.

Code VB :
 
 
    nomainwin
 
    WindowWidth = 600
    WindowHeight = 600
    UpperLeftX = (DisplayWidth-WindowWidth) / 3
    UpperLeftY = (DisplayHeight-WindowHeight) / 2
 global cor
 cor=6 'correction différence valeur pixel (interlogiciels)

  loadbmp "boulrou", "Rouge.bmp"
 
  graphicbox #w.map, 20, 40, 100, 100 'la clause cachée par la fumée de ton café
  open "    TEST Jeu..." for window_nf as #w
     #w "trapclose [quit]"
 
 #w.map "down; fill blue"   '"down; fill black"
 #w.map "drawbmp boulrou";" ";21+cor;" ";21+cor 'ligne pompée(syntaxe que j'ai
                                                 ' cherché dans l'aide en vain
wait  'l'indispensable

    [quit]
        close #w
        end
    wait
 
 
____________________
Roro

   
Le 22/03/2012 à 13h05

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Je dois rectifier . Quand je dis: "les contraintes qu'implique les sprites", je dois ajouter: "et les avantages".
Quand tu dis : "qu'il faut 'tout' réecrire", tu exagère... On peut garder au moins vingt lignes (au début.) :)
La syntaxe est une horreur, inventée par le diable, pour nous nous faire Ch.....! :gre



Edité par Roland Le 22/03/2012 à 13h25
____________________
Roro

   
Le 22/03/2012 à 15h42

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Tu peux me critiquer Roland, y a pas de soucis, pour peu que ce soit constructif pour tout le monde.

Pour la syntaxe avec les ";" je t'ai déjà tout expliqué Le 15/03/12 à 18h25 à peu près au milieu du message.

Depuis le début tu me fais penser à un gars qui veux piloter un hélico, et qui, le jour où il entre dans le cokpit s'exclame "Mais bordel de merde ils n'auraient pas pu mettre un simple bouton ON/OFF !!! c'est quand même pas compliqué de mettre un simple bouton pour piloter !?"

Un peu à l'image de celui-ci : qui lui pour le coup vient de se l'offrir l'hélico, et qui a voulu aller plus vite que le temps nécessaire pour apprendre... http://www.youtube.com/watch?v=VlId5XZ14g8

En tout cas je suis content que tu ais su t'en sortir tout seul avec ces quelques lignes, et ça t'a certainement "débloqué" plein de choses...

Roland:
Encore merci pour ta patience, sans ton aide, j'aurais certainement abandonné.


Alors ça, ça me fait plaisir :top


Rien à voir avec la programmation, c'est juste de la réflection, mais comment tu t'y prendrais toi pour détecter si des billes sont alignées ?
Je veux dire par exemple "je regarde une à une les billes de droite jusqu'au bord du tableau, puis pareil en vertical, etc... , en partant de quelle bille, etc..."


@+



Edité par cassiope01 Le 22/03/2012 à 16h11
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 22/03/2012 à 17h56

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Comme il ne s'agit que des alignements horizontaux,
Aprés avoir rempli un tableau avec la nature (couleur) des billes, (de préférence en chiffres: vert=12),
tableau qui se rempli, comme se remplissent les colonnes.
je ferais un test d'égalité, par trois, ou quatre cases (horizontales) consécutives(attenantes) en décalant le test de la première à la dernière colonne, et cela ligne aprés ligne (haut>bas ).
avec peut etre un test préliminaire pour detecter la colonne la plus remplie, et commencer les comparaisons à cette ligne la.
pour gagner du temps de test quand les colonnes sont peu remplies.
Si une egalité est trouvée, les billes concernées sont détruites, celles qui sont au dessus descendent,et un nouveau cycle de test est lançé (cascade ?)
Un "matheux", expert en calcul matriciel, aurait sans doute une formule "de la mort qui tue" qui ferait le boulot en une seule ligne. Ce n'est pas mon cas.
Je t'avoue que je me casse bien la tete sur ta gestion du tableau du jeu de billes.

C'est sur que ça m'a débloqué, ça m'a surtout mis devant le réel, à savoir que les fonctionalités des sprites me font défaut.
A ce sujet, je vois que ton ami qui a fait le clone des billes, apres avoir fabriqué ses billes, gère des sprites.
S'agit-il de véritables sprites, avec masque ?
Je saccage son programme (arrachage du superflu) pour le réduire, et m'y déplacer plus à l'aise, je ne fais que commencer.



Edité par Roland Le 22/03/2012 à 19h23
____________________
Roro

   
Le 22/03/2012 à 18h21

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2190
Je suis allé voir ton post (par le lien) . C'est vrai que tu explique les ";" que je commence à peine à maitriser
de mème que le "#" , que je comprend, maintenant.
Je dois etre fermé aux explications théoriques, il me faut des exemples expliqués.
D'ou ma remarque sur des programmes hyper commentés comme tutoriels.





Edité par Roland Le 22/03/2012 à 22h26
____________________
Roro

   
Discussion Générale » Quelques propos..... Sur: Les exemples  

 |  |

2 Utilisateurs en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 2 Visiteurs
Utilisateurs en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie