Forum Liberty Basic France
• Index
Petite remarque pour cassiope. Je n'ai pas pris tes dernières modifs. C'est le début du commencement de mon émancipation.
Code JB :
Code JB :
'mastermind v4_ Fonctionnel nomainwin WindowWidth = 560 WindowHeight = 600 UpperLeftX = (DisplayWidth-WindowWidth)/2 UpperLeftY = (DisplayHeight-WindowHeight)/2 button #w.ne, "Start", [Start], UL, 310, 330 button #w.tt, "Test", [test], UL, 360, 155,110, 30 button #w.so, "1", [sou1], UL, 308, 240 button #w.so, "2", [sou2], UL, 357, 240 button #w.so, "3", [sou3], UL, 407, 240 button #w.so, "4", [sou4], UL, 458, 240 button #w.so, "5", [sou5], UL, 504, 240 TEXTBOX #w.so1, 305, 270,25, 25 TEXTBOX #w.so2, 354, 270,25, 25 TEXTBOX #w.so3, 404, 270,25, 25 TEXTBOX #w.so4, 455, 270,25, 25 TEXTBOX #w.so5, 502, 270,25, 25 STATICTEXT #w, "Combinaison Machine", 360, 220, 150, 15 STATICTEXT #w.av, "Avec Doublons >", 415, 315, 85, 15 button #w.av, "*", [ave], UL, 500, 310, 35, 20 STATICTEXT #w.sa, "Sans Doublons >", 415, 345, 85, 15 STATICTEXT #w, "(Par Defaut)", 415, 365, 85, 15 button #w.sa, "*", [san], UL, 500, 340, 35, 20 button #w.r1, "Red", jeu, UL, 290, 10, 50, 25 'choix place boutons ligne button #w.r2, "Red", jeu, UL, 340, 10, 50, 25 'choix couleurs boutons colonnes button #w.r3, "Red", jeu, UL, 390, 10, 50, 25 button #w.r4, "Red", jeu, UL, 440, 10, 50, 25 button #w.r5, "Red", jeu, UL, 490, 10, 50, 25 button #w.g1, "Green", jeu, UL, 290, 35, 50, 25 button #w.g2, "Green", jeu, UL, 340, 35, 50, 25 button #w.g3, "Green", jeu, UL, 390, 35, 50, 25 button #w.g4, "Green", jeu, UL, 440, 35, 50, 25 button #w.g5, "Green", jeu, UL, 490, 35, 50, 25 button #w.y1, "Yellow", jeu, UL, 290, 60, 50, 25 button #w.y2, "Yellow", jeu, UL, 340, 60, 50, 25 button #w.y3, "Yellow", jeu, UL, 390, 60, 50, 25 button #w.y4, "Yellow", jeu, UL, 440, 60, 50, 25 button #w.y5, "Yellow", jeu, UL, 490, 60, 50, 25 button #w.p1, "pink", jeu, UL, 290, 85, 50, 25 button #w.p2, "pink", jeu, UL, 340, 85, 50, 25 button #w.p3, "pink", jeu, UL, 390, 85, 50, 25 button #w.p4, "pink", jeu, UL, 440, 85, 50, 25 button #w.p5, "pink", jeu, UL, 490, 85, 50, 25 button #w.b1, "blue", jeu, UL, 290, 110, 50, 25 button #w.b2, "blue", jeu, UL, 340, 110, 50, 25 button #w.b3, "blue", jeu, UL, 390, 110, 50, 25 button #w.b4, "blue", jeu, UL, 440, 110, 50, 25 button #w.b5, "blue", jeu, UL, 490, 110, 50, 25 graphicbox #w.a, 5,5,180,555 graphicbox #w.b, 195,5,80,555 open "Mastermind..." for window_nf as #w #w "trapclose [quit]" global c$, pro$, prop$ global bcp, bc, y, p, f1, f2, x DIM comb$(5):DIM propo$(5) fl2=0:fl1=0:y=20 'good practice to start with a clean sheet #w.a "cls ; down" #w.b "cls ; down" #w.a "fill lightgray" #w.a "flush videcreensegment" 'nettoyage #w.b "fill lightgray" #w.b "flush videcreensegment" [astart] wait [Start] '*******************************Début********** print #w.tt, "!enable" print #w.tt, "test" fl2=1 'temoin de start #w.a "redraw videcreensegment" 'efface l'ancien #w.b "redraw videcreensegment" PRINT #w.so1,"":PRINT #w.so2,"":PRINT #w.so3,"" PRINT #w.so4,"":PRINT #w.so5,"" for k=1 to 5 propo$(k-1)="q" next k if avec=0 then gosub [sans] 'doublons if avec=1 then gosub [avec] 'doublons '------------------------------Tour------------- wait sub jeu handle$ pc = instr("rgypb",mid$(handle$,4,1)) ' la ligne qui t'assome couleur$ = word$("red green yellow pink blue",pc) ' celle qui t'achève x = val(right$(handle$,1)) ' et celle qui te ranime ' ici: grosse prise de tete #w.a "backcolor ";couleur$;"; color ";couleur$ #w.a "place ";20+35*(x-1);" ";y;"; circlefilled 15" #w.a "flush redsegment" #w.a "flush greensegment" #w.a "flush yellowsegment" #w.a "flush pinksegment" #w.a "flush bluesegment" prop$=right$(handle$,2) 'r2 de w.r2 ,r3,r4,b1,b2.... pro$=left$(prop$,1) 'r de r2 de #w.r2 p$=right$(prop$,1) '2 de r2 propo$(val(p$))=pro$ f1=0 end sub wait [test] if fl2=0 then goto [clign] 'appui de test avant start bcp=0:bc=0:x=10:f1=f1+1 'F1 témoin d'appui répétés x=10 bc=0 for j=1 to 5 if propo$(j)=comb$(j-1) then ' Bonne Coul Place.. bcp=bcp+1:propo$(j)="z" ' z neutralise end if 'bcp lue plus bas next 'toutes les bonnes coul/place sont neutralisées if bcp=0 then x=10 ' assure x=10 suite bug aucune couleur for j=1 to 5 if propo$(j)=comb$(0) then 'Bonne Coul mauvaise place bc=bc+1: propo$(j)="z" 'z neutralise end if next for j=1 to 5 if propo$(j)=comb$(1) then bc=bc+1: propo$(j)="z" end if next for j=1 to 5 if propo$(j)=comb$(2) then bc=bc+1: propo$(j)="z" end if next for j=1 to 5 if propo$(j)=comb$(3) then bc=bc+1: propo$(j)="z" end if next for j=1 to 5 if propo$(j)=comb$(4) then bc=bc+1: propo$(j)="z" end if next x=10 'affichage...bcp=total Bonne Coul/Place...bc=total Bonne Coul if bcp<>0 then 'au moins 1 bonne couleur bonne place for u=1 to bcp #w.b "backcolor black; color black" #w.b "place ";x;" ";y;"; circlefilled 5" #w.b "flush blacksegment" x=x+10 next end if if bc<>0 then xx=x 'report dernier x si bcp<>0 if bc<>0 then 'au moins 1 bonne couleur mauvaise place for u=1 to bc #w.b "backcolor white; color white" #w.b "place ";xx;" ";y;"; circlefilled 5" #w.b "flush whitesegment" xx=xx+10 next end if 'x=10 if f1=1 then y=y+35 'flag appui test non repété>incrémente descente/tour p=0 if y>535 then print #w.tt, "PERDU": goto [astart] ' PERDU end if if bcp=5 then print #w.tt, "GAGNE": goto [astart] ' GAGNE end if wait [sou1] ' Affiche combi machine PRINT #w.so1, UPPER$(comb$(0)); wait [sou2] PRINT #w.so2, UPPER$(comb$(1)); wait [sou3] PRINT #w.so3, UPPER$(comb$(2)); wait [sou4] PRINT #w.so4, UPPER$(comb$(3)); wait [sou5] PRINT #w.so5, UPPER$(comb$(4)); wait [ave] avec=1 print #w.av, "avec" 'rappel option sur bouton print #w.sa, "*" wait [san] avec=0 print #w.sa, "sans" print #w.av, "*" wait [avec] ' avec doublons y=20 :p=0 'première ligne affichée source$="r g y p b" 'les initiales des couleurs(et le left handle$) for i=0 to 4 co=int(rnd(1)*5)+1 'génération combi comb$(i)=word$(source$,co) 'méfiance y'a un comb$(0) next i return [sans] ' sans doublons y=20 :p=0 'première ligne affichée source$="r g y p b" 'les initiales des couleurs(et le left handle$) for i=0 to 4 co=int(rnd(1)*5)+1 'génération combi comb$(i)=word$(source$,co) 'méfiance y'a un comb$(0) next i if comb$(0)<>comb$(1)and comb$(0)<>comb$(2) and comb$(0)<>comb$(3) and comb$(0)<>comb$(4) then if comb$(1)<>comb$(2)and comb$(1)<>comb$(3) and comb$(1)<>comb$(4) then if comb$(2)<>comb$(3)and comb$(2)<>comb$(4) then if comb$(3)<>comb$(4) then return 'pas de doublons retour à l'appelant end if end if end if goto [sans] 'il y a doublons > nouvelle génération wait [clign] [ess] timer 0 print #w.tt, "!disable" scan 'garde un oeil sur action joueur print #w.tt, "!enable" print #w.tt, "Doublons ? Start ?" timer 1000 goto [ess] wait [quit] #w.a "discard" 'libère mémoire #w.b "discard" close #w end
____________________
Roro
Roro
ça ne fonctionne pas.
Il y a toujours 5 points blanc/noir !!!
Ne devrait-il pas y avoir seulement le nombre de couleurs présentes dans la proposition ?
Avec 4 propositions (pour l'instant il suffirait de désactiver la dernière colonne de boutons) et 6 couleurs possibles ce serait mieux je pense !
Y a un BUG quand tu cliques sur le bouton "test" dès le départ....!
La combinaison cachée pourrait être montrée en cliquant sur un seul bouton plutôt que 5
ou mieux encore : la première rangée pourrait être la combinaison secrète (seulement des ronds vides seraient affichés au départ), et les propositions du joueur commenceraient à la 2ème ligne...
Pour le choix 'avec' / 'sans' doublon il y a 2 autres solutions toutes prêtes :
CHECKBOX #handle.ext, "label", setHandler, resetHandler, x, y, wide, high
ou bien
RADIOBUTTON #handle.ext, "label", setHandler, resetHandler, x, y, wide, high
@+
Edité par cassiope01 Le 10/05/2012 à 09h18
Il y a toujours 5 points blanc/noir !!!
Ne devrait-il pas y avoir seulement le nombre de couleurs présentes dans la proposition ?
Avec 4 propositions (pour l'instant il suffirait de désactiver la dernière colonne de boutons) et 6 couleurs possibles ce serait mieux je pense !
Y a un BUG quand tu cliques sur le bouton "test" dès le départ....!
La combinaison cachée pourrait être montrée en cliquant sur un seul bouton plutôt que 5

ou mieux encore : la première rangée pourrait être la combinaison secrète (seulement des ronds vides seraient affichés au départ), et les propositions du joueur commenceraient à la 2ème ligne...

Pour le choix 'avec' / 'sans' doublon il y a 2 autres solutions toutes prêtes :
CHECKBOX #handle.ext, "label", setHandler, resetHandler, x, y, wide, high
ou bien
RADIOBUTTON #handle.ext, "label", setHandler, resetHandler, x, y, wide, high
@+
Edité par cassiope01 Le 10/05/2012 à 09h18
____________________
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."
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
Hey ! Mais c'est pas un bug. Quand on appui sur "test" au départ,le bouton clignote avec ecrit dessus:
"doublons? Start?".Ca indique qu'il faut d'abord cliquer sur:"doublons" ou sur "start"
J'ai commencé d'écrire des modifs: choix du nombre de colonnes, choix du nombre de couleurs, avec ajout de deux couleurs . Mais avec mon code" carolingien", l'usine à gaz fuyait de toutes part, et les dangers d'explosion m'on fait mettre la chose en stand-by.
Il n'y a pas toujours 5 points. Si tu prend l'option: "avec doublons", et que tu propose des couleurs qui ne sont pas dans la combi machine, tu peux n'avoir aucun points.
Je trouve que c'est mieux de pouvoir interroger la combi machine sélectivement (chacun ses gouts n'est-ce pas.)
Tes deux lignes de la mort qui tue, je les copie, et je les mets au "comprenoir".
J'ai enfin réussi à avoir tous les élements, et à envoyer le pognon à "shoptalk"; Pour tout dire, je n'y crois pas des masses. j'ai la craie à la main pour faire une croix sur le pognon...
A part ça , j'ai vu que tu t'interréssais aux dominos de Gearce. (toi qui comprend l'anglish tu pourrais m'expliquer en quoi consiste son jeu)
Si on voulait faire une simul de jeu de domino, il faudrait les considérer comme des dipoles.(domino 1.0)
J'ai réfléchi à la manipulation de dipoles dans un champ. é bé c'est pas évident.
Par ailleurs, je me demande s'il est possible de faire un tableau (5X5), dont chaque case serait un tableau (3X3 par exemple). Mais c'est plutot au "matou" (singulier de "matheux")Claude qu'il faudrait demander cela.
"doublons? Start?".Ca indique qu'il faut d'abord cliquer sur:"doublons" ou sur "start"

J'ai commencé d'écrire des modifs: choix du nombre de colonnes, choix du nombre de couleurs, avec ajout de deux couleurs . Mais avec mon code" carolingien", l'usine à gaz fuyait de toutes part, et les dangers d'explosion m'on fait mettre la chose en stand-by.

Il n'y a pas toujours 5 points. Si tu prend l'option: "avec doublons", et que tu propose des couleurs qui ne sont pas dans la combi machine, tu peux n'avoir aucun points.
Je trouve que c'est mieux de pouvoir interroger la combi machine sélectivement (chacun ses gouts n'est-ce pas.)
Tes deux lignes de la mort qui tue, je les copie, et je les mets au "comprenoir".

J'ai enfin réussi à avoir tous les élements, et à envoyer le pognon à "shoptalk"; Pour tout dire, je n'y crois pas des masses. j'ai la craie à la main pour faire une croix sur le pognon...
A part ça , j'ai vu que tu t'interréssais aux dominos de Gearce. (toi qui comprend l'anglish tu pourrais m'expliquer en quoi consiste son jeu)
Si on voulait faire une simul de jeu de domino, il faudrait les considérer comme des dipoles.(domino 1.0)
J'ai réfléchi à la manipulation de dipoles dans un champ. é bé c'est pas évident.
Par ailleurs, je me demande s'il est possible de faire un tableau (5X5), dont chaque case serait un tableau (3X3 par exemple). Mais c'est plutot au "matou" (singulier de "matheux")Claude qu'il faudrait demander cela.

____________________
Roro
Roro
Roland:
Oui, c'est possible, mais faut feinter...!
Ils en parlent justement sur le forum engliche.
@+
Edité par cassiope01 Le 10/05/2012 à 18h04
Par ailleurs, je me demande s'il est possible de faire un tableau (5X5), dont chaque case serait un tableau (3X3 par exemple). Mais c'est plutot au "matou" (singulier de "matheux")Claude qu'il faudrait demander cela. 

Oui, c'est possible, mais faut feinter...!
Ils en parlent justement sur le forum engliche.
@+
Edité par cassiope01 Le 10/05/2012 à 18h04
____________________
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."
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
J'ai vu le forum anglais, ils parlent de tableaux multidimentionnel, et comme j'ai vu des x, y, z, j'en conclu
qu'un tableau à trois dimensions se represente par un cube ( pour les plus de trois, difficile d'imaginer)
Ce dont je parle, c'est beaucoup plus simple. Il suffit, dans un tableau (100,100) de désigner par le chiffre des dizaines les cases "contenant", et par les dizaines+unités, les cases "contenues', et changer de "base" en fonction des valeurs.
Et voilà qui est répondu à ma question.
Avec un tableau de tableau(3,3), on doit pouvoir gérer le déplacement d'un dipole dans les huit directions:Nord, nord-est, Est, sud-est...ext....Mais peut etre...Délire-je. (...ça se dit ça ??)
qu'un tableau à trois dimensions se represente par un cube ( pour les plus de trois, difficile d'imaginer)
Ce dont je parle, c'est beaucoup plus simple. Il suffit, dans un tableau (100,100) de désigner par le chiffre des dizaines les cases "contenant", et par les dizaines+unités, les cases "contenues', et changer de "base" en fonction des valeurs.
Et voilà qui est répondu à ma question.
Avec un tableau de tableau(3,3), on doit pouvoir gérer le déplacement d'un dipole dans les huit directions:Nord, nord-est, Est, sud-est...ext....Mais peut etre...Délire-je. (...ça se dit ça ??)

____________________
Roro
Roro
Roland:
Avec un tableau de tableau(3,3), on doit pouvoir gérer le déplacement d'un dipole dans les huit directions:Nord, nord-est, Est, sud-est...ext....Mais peut etre...Délire-je. (...ça se dit ça ??)
Tu as tout compris.
Avec un tableau de tableau(3,3), on doit pouvoir gérer le déplacement d'un dipole dans les huit directions:Nord, nord-est, Est, sud-est...ext....Mais peut etre...Délire-je. (...ça se dit ça ??)

Tu as tout compris.
____________________
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."
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
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie