Forum Liberty Basic France

Jeux » Mononopy exercice
Le 13/05/2012 à 15h10

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2126
Je mets là la version la plus aboutie pour les pressés:
monopoly.zip

.....Suite d'un autre thread: 'http://libertybasic.fr/forum/topic-118.php#m1170
Je ne sais pas trop comment je vais faire pour donner la main à l'ordi un coup sur deux, vu que la ligne en question me laisse plutot perplexe.
notamment le: (joueur = 2) de: joueur = joueur + 1 - 2 * (joueur = 2)
Mhéééééééh d'oooù ça sort ce truc ????!
Bon, si tu veux voir.
Je ne suis pas mécontent, j'ai réussi à placer des choses "en relatif", avec ta méthode et tes variables. Y'a pas un seul bug. :p
Par contre, pour savoir à quel joueur j'ai à faire, je ne vois pas d'autre moyen que de poser des questions.
Pour l'IA, c'est toujours le meme problème: si elle est efficace, on ne gagne plus, et si elle est pas efficace, c'est pas la peine d'en faire une.
Les règles (provisoires): pour batir il faut posséder le terrain, on encaisse 200 à chaque tour (avec un léger retard),on paye des taxes si on est mal garé, ou si on squatte chez le voisin, les coins sont disposés aux quatres angles..... :p

Code JB :
 
 
'http://libertybasic.fr/forum/topic-118.php#m1170
 
nomainwin
  WindowWidth = 700
  WindowHeight = 530
  UpperLeftX = Int((DisplayWidth-WindowWidth)/2)
  UpperLeftY = Int((DisplayHeight-WindowHeight)/2)
 
statictext #v1, "xxxx", 520, 10, 150, 25
TEXTBOX #g.av1, 520, 30, 150, 25
TEXTBOX #g.av2, 520, 360, 150, 25
button #g.je, "Jouer",[jeu], UL, 640, 400
button #g.ach, "Acheter",[ach], UL, 570, 400
button #g.je, "Batir",[bat], UL, 515, 400
TEXTBOX #g.t1, 520, 450, 150, 25
open "Micro Monopoly" +space$(20)+ "...Ordinateur contre reste du monde..." For Graphics_nsb_nf As #g
  #g "Down; TrapClose [quit]"
  Print #g, "When rightButtonUp rightButtonUp"' prise de cote a suprimer
 
    DSizeX = 50      ' you can change this value to see ...!
    DIM caseX(16), caseY(16)  'coordonnées en pixel des 16 cases (la première étant en bas à droite et les suivantes dans le sens inverse des éguilles d'une montre.
    DIM valDe(2), DposX(2), DposY(2), posXpion(2), posYpion(2), oldXpion(2), oldYpion(2), oldSumD(2), colJ$(2)
      DIM ach(16,2), bat(16,2), capit(2)    ' ajouté
      capit(1)=100000: capit(2)=100000      ' ajouté
      tx$="#g.av" +str$(joueur)             ' ajouté
    DposX(1) = 200 :DposY(1) = 300
    DposX(2) = DposX(1)+DSizeX+10 :DposY(2) = 300
    colJ$(1) = "red"     ' couleurs des pions des joueurs.
    colJ$(2) = "yellow"
    CouleurFond$ = "darkcyan"   ' couleur du plateau
    CouleurCentre$ = "blue"     ' couleur du carré central
 
    ' mise en place Grille etc...
    #g "down; fill ";CouleurFond$
      Print text(520, 20,"Avoir Joueur 1")
      Print text(520, 350,"Avoir Joueur 2")
   PRINT #g.av1, str$(capit(1))' envoie capit danx textbox
   PRINT #g.av2, str$(capit(2))' envoie capit danx textbox
    #g "color black"
    case$ = "55 54 53 52 51 41 31 21 11 12 13 14 15 25 35 45"  'chaine de coordonnées des 16 cases  "xy xy xy xy  etc...)
    sQsize = int((WindowHeight-25)/5)  'grille = 5 x 5 cases -> de dimension proportionnelle à la hauteur de la fenêtre.
    for c = 1 to 16
        x = val(left$(word$(case$,c),1))  :caseX(c) = (x-1)*sQsize  'mémorise en pixels
        y = val(right$(word$(case$,c),1)) :caseY(c) = (y-1)*sQsize
        #g "place ";caseX(c)-1;" ";caseY(c)-1;" ; box ";caseX(c)+sQsize;" ";caseY(c)+sQsize
    next
    #g "backcolor ";CouleurCentre$;" ; color ";CouleurCentre$                  'carré central
    #g "place ";sQsize;" ";sQsize;" ; boxfilled ";sQsize*4;" ";sQsize*4
 
    ' initialise la position de départ sur la première case.
    for joueur = 1 to 2
        posXpion(joueur) = caseX(1) + 30 + 30*(joueur-1)
        posYpion(joueur) = caseY(1) + 30
        oldXpion(joueur) = posXpion(joueur)
        oldYpion(joueur) = posYpion(joueur)
        oldSumD(joueur) = 1  ' la case actuelle des joueurs
        gosub [affPion]
    next
    joueur = 2
 
   '''' #g "when leftButtonDown [draw2]"  ' clic gauche : on fait un tirage...
 
    ' juste pour avoir les dés affichés au départ.
    valDe(1) = int(rnd(0)*6)+1
    call DES DposX(1), DposY(1), valDe(1), DSizeX, "212 195 171", "black"   'affiche premier Dé
    valDe(2) = int(rnd(0)*6)+1
    call DES DposX(2), DposY(2), valDe(2), DSizeX, "212 195 171", "black"   'affiche deuxième Dé
    #g.t1 " Joueur ";1;" = "
    #g "flush ; discard"
 
  WAIT
  '* caseX(num) et caseY(num)=pos XY coin haut gauche case en pixels
 [ach]                '--------------ACH----ACH----ACH----ACH----------------
  nc=oldSumD(joueur)   'extract numero case(alège contenu parentheses)
  ach(nc,joueur)=1       'enregistre acte achat dans ach(16,2)
   if nc=1 or nc= 5 or nc= 9 or nc=13 then ach(nc,joueur)=0   ' coin
   if joueur=1 and ach(nc,2)=1 then ach(nc,joueur)=0   ' déjà pris dans tableau
   if joueur=2 and ach(nc,1)=1 then ach(nc,joueur)=0   ' déjà pris dans tableau
   if joueur=1 and ach(nc,2)=0 then goto [dac]       '  terrain libre
   if joueur=2 and ach(nc,1)=0 then       '  terrain libre
     if nc<>1 and nc<> 5 and nc<>9 and nc<>13 then  goto [dac] ' pas coin
   end if
wait
 [dac]        ' autorise achat
   if nc<>1 and nc<> 5 and nc<>9 and nc<>13 then
     capit(joueur)=capit(joueur)-200            '  cout terrain //////////////
   end if
  if cCase <5 and cCase >1 then         '    placement rond achat
    #g "place ";caseX(nc);" ";caseY(nc)+sQsize/2;" ; circlefilled 15"
    #g "backcolor ";colJ$(joueur);" ; color ";colJ$(joueur)
  end if
  if cCase >5 and cCase <9 then
    #g "place ";caseX(nc)+sQsize/2;" ";caseY(nc)+sQsize;" ; circlefilled 15"
    #g "backcolor ";colJ$(joueur);" ; color ";colJ$(joueur)
  end if
  if cCase >9 and cCase <13 then
    #g "place ";caseX(nc)+sQsize;" ";caseY(nc)+sQsize/2;" ; circlefilled 15"
    #g "backcolor ";colJ$(joueur);" ; color ";colJ$(joueur)
  end if
  if cCase >13 and cCase >1 then
    #g "place ";caseX(nc)+sQsize/2;" ";caseY(nc);" ; circlefilled 15"
    #g "backcolor ";colJ$(joueur);" ; color ";colJ$(joueur)
  end if
   PRINT #g.av1, str$(capit(1))' envoie capit danx textbox
   PRINT #g.av2, str$(capit(2))' envoie capit danx textbox
 wait
 
  [bat]              '------------BAT-----BAT-----BAT-----BAT----------
  nc=oldSumD(joueur)     'extract numero case
  bat(nc,joueur)=1       'enregistre acte batir dans bat(16,2)
   if nc=1 or nc= 5 or nc=9 or nc=13 then bat(nc,joueur)=0   ' coin
   if joueur=1 and ach(nc,2)=1 then bat(nc,joueur)=0   ' déjà pris dans tableau
   if joueur=2 and ach(nc,1)=1 then bat(nc,joueur)=0   ' déjà pris dans tableau
   if joueur=1 and ach(nc,2)=0 and ach(nc,1)=1 then goto [dacb]  ' terrain acquis
   if joueur=2 and ach(nc,1)=0 and ach(nc,2)=1 then  ' terrain acquis
     if nc<>1 and nc<> 5 and nc<>9 and nc<>13 then goto [dacb]         ' pas coin
   end if
wait
 [dacb]             ' autorise batir
   capit(joueur)=capit(joueur)-1000          '   cout construction ////////////
   print #g, "font arial 16 "   'augmente taille font
  if cCase <5 then         ' ---------------------------placement B Bati
    #g "place ";caseX(nc)-7;" ";caseY(nc)+(sQsize/2)+7;
    print #g,"\B"
  end if
  if cCase >5 and cCase <9 then
    #g "place ";caseX(nc)+(sQsize/2)-7;" ";caseY(nc)+sQsize+7;
    print #g,"\B"
  end if
  if cCase >9 and cCase <13 then
    #g "place ";caseX(nc)+sQsize-7;" ";caseY(nc)+(sQsize/2)+7;
    print #g,"\B"
  end if
  if cCase >13 and cCase >1 then
    #g "place ";caseX(nc)+(sQsize/2)-7;" ";caseY(nc)+7;
    print #g,"\B"
  end if
  print #g, "font arial 10 " 'retour font normal
   PRINT #g.av1, str$(capit(1))' envoie capit danx textbox
   PRINT #g.av2, str$(capit(2))' envoie capit danx textbox
 
    wait
 
    [draw2]
        gosub [draw]
    wait
 
 
  [draw]
     ' tirage
     for d = 1 to 15
         valDe(1) = int(rnd(0)*6)+1
         call DES DposX(1), DposY(1), valDe(1), DSizeX, "212 195 171", "black"   'affiche premier Dé
         valDe(2) = int(rnd(0)*6)+1
         call DES DposX(2), DposY(2), valDe(2), DSizeX, "212 195 171", "black"   'affiche deuxième Dé
         call pause 100
     next
     #g.t1 " Joueur ";joueur;" = ";valDe(1) + valDe(2)' envoie valeur dé dans textbox
  return
 
 
 [jeu]
     joueur = joueur + 1 - 2 * (joueur = 2)  'change de joueur (passe de 1 à 2 ou 2 à 1 etc...)
    #g.t1 " Joueur ";joueur;" = "  'ecrit dans textbox
    gosub [draw]
    if joueur = 1 then ptx = 30 else ptx = 60
    cCase = oldSumD(joueur)
    numD = valDe(1) + valDe(2)
    n = 0
    DO      ' boucle de trajet
        cCase = cCase + 1
        if cCase > 16 then cCase = cCase - 16   ' faut pas que le n° de case dépasse 16 bien sûr...
        posXpion(joueur) = caseX(cCase) + ptx
        posYpion(joueur) = caseY(cCase) + 30
        gosub [affPion]
        call pause 400
        n = n + 1
                   if cCase=1 then                  ' D'ici.....
                   capit(joueur)= capit(joueur)+200
                   'tx$="#g.av" +str$(joueur)
                   print tx$, str$(capit(joueur))   '...à là: temps de décoince =5/7 cases
                   end if
 
    LOOP UNTIL n = numD
    oldSumD(joueur) = cCase     ' n° de la case où se trouve maintenant 'joueur'
 
    #g "flush ; discard"
 
                      '*********************ARRIVEE DU PION****************
  ' consequences arrivee
   nc=oldSumD(joueur)  'numéro case
     if nc=13 then capit(joueur)=capit(joueur)+200         'var's ajustement /////////////////
     if nc=5 then capit(joueur)=capit(joueur)-50
     if joueur=1 and ach(nc,2)=1 then capit(1)=capit(1)-10:capit(2)=capit(2)+10 'loyer terrain
     if joueur=2 and ach(nc,1)=1 then capit(2)=capit(2)-10:capit(1)=capit(1)+10
     if joueur=1 and bat(nc,2)=1 then capit(1)=capit(1)-50:capit(2)=capit(2)+50 ' loyer bati
     if joueur=2 and bat(nc,1)=1 then capit(2)=capit(2)-50:capit(1)=capit(1)+50
   PRINT #g.av1, str$(capit(1))' envoie capit danx textbox
   PRINT #g.av2, str$(capit(2))' envoie capit danx textbox
 
  wait
 
 
    [affPion]
        #g "backcolor ";CouleurFond$;" ; color ";CouleurFond$;" ; size 1"
        #g "place ";oldXpion(joueur);" ";oldYpion(joueur);" ; circlefilled 10"  ' l'efface à son ancienne position,
        #g "backcolor ";colJ$(joueur);" ; color ";colJ$(joueur)
        #g "place ";posXpion(joueur);" ";posYpion(joueur);" ; circlefilled 10"  ' puis le dessine à la nouvelle position.
        #g "color black"
        #g "place ";posXpion(joueur)-3;" ";posYpion(joueur)+5;";|";joueur
        oldXpion(joueur) = posXpion(joueur)
        oldYpion(joueur) = posYpion(joueur)  'mémorise comme ancienne position pour ce joueur (en pixels).
    return
 
 
  sub DES posX, posY, Num, dimD, colFd$, colPt$
     'posX,posY = position du dé à l'écran
     'Num       = valeur du dé
     'dimD      = dimension du dé
     'colFd$    = couleur du Dé   ex: black, green, ou en chiffre "212 195 171"
     'colPt$    = couleur des points
     sizeP = int(dimD/5)  'taille d'un point
     inc = int(dimD/4)
     refX = posX + inc + 1
     refY = posY + inc + 1
     #g "backcolor ";colFd$;"; color black; size 1"
     #g "place ";posX;" ";posY;"; boxfilled ";posX+dimD;" ";posY+dimD
     #g "size ";sizeP;"; color ";colPt$
     if instr("135",str$(Num)) > 0 then
         #g "place ";refX+inc;" ";refY+inc;"; set"
     end if
     if instr("23456",str$(Num)) > 0 then
        #g "place ";refX;" ";refY;"; set"
        #g "place ";refX+2*inc;" ";refY+2*inc;"; set"
     end if
     if instr("456",str$(Num)) > 0 then
        #g "place ";refX+2*inc;" ";refY;"; set"
        #g "place ";refX;" ";refY+2*inc;"; set"
     end if
     if instr("6",str$(Num)) > 0 then
        #g "place ";refX;" ";refY+inc;"; set"
        #g "place ";refX+2*inc;" ";refY+inc;"; set"
     end if
     'ATTENTION : on vient de modifier les couleurs et la size...!
  end sub
 
 
  sub pause temp   'pause en millisecondes
     timer temp, [temps]
     wait
     [temps]
     timer 0
  end sub
 
    Sub rightButtonUp handle$, xClick, yClick  'prise de cotes
      Print #g, "Place ";xClick;" ";yClick      'a suprimer
      Print #g, "\X";xClick
      Print #g, "\Y";yClick
    End Sub
 
[quit]
close #g
end
 
Function text(x,y,msg$)
    #g,"Place ";x;" ";y;";|";msg$
End Function
 
 
____________________
Roro

   
Le 13/05/2012 à 17h17

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
S'il te plaît Roland, pourrais-tu ne pas poster un nouveau sujet à chaque fois que tu postes sur un même projet ?

Par exemple, tu pourrais créer un sujet "Mini-Monopoly" ou "Mastermind" dans la rubrique "Jeux" et tu y vas dès que tu veux ajouter quelque chose à leur propos...

Tu éparpilles un peu partout sur le forum dans la rubrique "Annonces" et ailleurs, des trucs qui seraient mieux dans la rubrique "Jeux" par exemple, et c'est pas facile à retrouver ou à suivre pour ceux que ça pourrait intéresser.

Je ne sais pas dans quelle mesure les modos pourraient t'aider à utiliser mieux le forum...!


@+



Edité par cassiope01 Le 14/05/2012 à 18h24
____________________
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 13/05/2012 à 17h41

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
Je ne sais pas trop comment je vais faire pour donner la main à l'ordi un coup sur deux, vu que la ligne en question me laisse plutot perplexe.
notamment le: (joueur = 2) de: joueur = joueur + 1 - 2 * (joueur = 2)
Mhéééééééh d'oooù ça sort ce truc ????!


Il te faut lire cette opération informatique en considérant qu'une égalité fausse renvoi 0 et 1 si vrai.
Donc (joueur=2) renvoi 0 si c'est faux, et 1 si c'est vrai.
On aura donc :
- si joueur = 1 --> joueur = 1 + 1 - 2 * ( 0 ) résultat joueur sera = à 2
- si joueur = 2 --> joueur = 2 + 1 - 2 * ( 1 ) résultat joueur sera = à 1

resultat la variable 'joueur' passe de 1 à 2 puis 1 puis 2 à chaque rencontre de ce petit algorithme.

Pour passer la main à l'ordi c'est vrai que ce n'est pas évident...!
Disons qu'il faut faire intervenir la procédure de l'AI dés que 'joueur' passe à 2 (si l'ordi est le joueur 2 bien sûr)
Le pb avec JB c'est que l'utilisateur peut cliquer sur les boutons quand il veut, et donc peut-être pendant que l'ordi "réfléchi" ou joue... faut en tenir compte. Eventuellement utiliser une variable pour veiller...

Tu devrais prendre un peu de temps pour voir comment utiliser 'select case ... case ... case ... end select'

En programmation, lorsque des lignes de code se répètent avec très peu de différence, alors il faut envisager une boucle ;)

'function' est plutôt utilisé (et prévu) pour renvoyer une valeur, comme le résultat d'un calcul un peu complexe, ou un travail sur une chaine de caractère passée en paramètre.

à la place de :
Code VB :
 
Function text(x,y,msg$)
    #g,"Place ";x;" ";y;";|";msg$
End Function
 

il est préférable d'utiliser :
Code VB :
 
SUB text x, y, msg$
    #g,"Place ";x;" ";y;";|";msg$
End Function
 

puis l'appeler ensuite simplement comme ça :
Code VB :
call text 10, 10, "Le texte à afficher..."



M'autorises-tu à optimiser ton code (en essayant de ne pas te perdre en route ;) ), surtout pour l'affichage des informations à droite, mais aussi pour se donner plus de place ? ce serait mieux en un peu plus grand tu ne trouves pas ?


@+



Edité par cassiope01 Le 14/05/2012 à 18h55
____________________
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 13/05/2012 à 18h20

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2126
Pour utiliser ce truc il faut au minimum: les parenthèses, et on fait ce qu'on veut du 0/1 qui est renvoyé,
si j'ai compris.
Pendant que l'ordi joue, on peut aussi désactiver le bouton .
C'est vrai que case est interressant, je n'y ai pas pensé. (case est nouveau pour moi)
La fonction: J'ai constaté que sans elle on ne pouvait pas afficher sous une forme directe, je l'utilise sans avoir encore cherché à comprendre comment elle agit au juste.
si c'est bien la fonction qui est tout en bas du prog, avec elle, il n'y a pas besoin d'appel, on peut mettre du texte en une seule ligne.
J'ai essayé de voir comment tu t'y étais pris dans "Bangkok" pour le texte, mais il fallait décortiquer un peu trop, pour vraiment maitriser.
Je ne peux pas lacher ce que je tiens pour me plonger dans l'étude approfondie d'une partie de tes codes, parce que quand je suis un fil, je plonge dans la pelote...et tu connait tes pelotes...on a vite fait de plus trouver la sortie.(enfin, pour moi)
Evidemment que tu fais ce que tu veux,d'ailleurs, je commence à me sentir plus à l'aise dans tes points virgules. :miam
____________________
Roro

   
Le 15/05/2012 à 15h42

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2126
Ne t'investi pas trop dans mes patouillages, ce sont avant tout des exercices pour me faire la main et experimenter les choses que j'apprend.
Je suis toujours friand de tes méthodes, et je ne dois pas etre le seul...( je me demande qu'est ce qui retiens les visiteurs de nous rejoindre. Ne seraient-ils que des promeneurs égarés ? Il est vrai que sur le site " Python" ça ne bouge pas beaucoup non plus )
Pour le passage de main à l'ordi ça va bien avec des flags.
Je m'aperçois maintenant que ce jeu étant régis principalement par le hazard, il n'y a pas des masses de de place pour la stratégie. ( en parlant de stratégie: y'a un truc qui n'est pas parti aux oubliettes..Trop gros pour passer la trappe.......Tu sais quoi....) ;)
____________________
Roro

   
Le 15/05/2012 à 18h36

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
Ne t'investi pas trop dans mes patouillages,

ne t'en fais pas pour ça ;)
Je fais 3000 autres choses ;)

Comme moi, tu commences 36 choses sans en finir une :siffle

Qu'est-ce qui n'est pas dû au hasard dans le Monopoly ?

Tu pourrais facilement agrémenter ton code pour le rendre un chouia moins dépendant du hasard !?
Gérer les 4 cases de coin et aussi une case particulière au centre de chaque côté...;)

Par exemple : y a trop de sous au départ ;);)


@+



Edité par cassiope01 Le 15/05/2012 à 18h38
____________________
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 15/05/2012 à 19h06

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2126
Les sous, c'est les variables d'ajustement.
Quoi que je fasse, c'est toujours le hasard qui mène le jeu ( que je trouve plus hazardeux avec un "z") ;)
J'aime bien avoir 36 choses "en cours", comme ça y'a toujours quelque chose à faire (en cas de pénurie..) :siffle
____________________
Roro

   
Le 15/05/2012 à 19h35

Administrateur

Groupe: Administrateur

Inscrit le: 24/09/2010
Messages: 238
c'est normal qu'on ne puisse pas acheter les coins ?
____________________

MSN Yahoo Web    
Le 15/05/2012 à 19h48

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Voyons voyons Nephthys, tu reviens d'un voyage si lointain ?! ;) ;) ... ou bien tu n'aurais jamais vu un Monopoly de ta vie :heink

Oouuuh ! ça me donne un coup de vieux ça :lol


-



Edité par cassiope01 Le 15/05/2012 à 19h49
____________________
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 15/05/2012 à 20h21

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2126
Oups! j'ai completement oublié comment marche un monopoly. Mais où j'aurais mis le témoin d'achat ?
Les coins seront: un centre d'affaire, un parc d'atraction, un volcan en activité, et une zone de non droit. :lol
Enfin..peut etre....quand on code "au fil de l'eau", il peut y avoir des trucs bizarres,...il faut le savoir....
Je précise qu'il s'agit d'un modèle expérimental, et décline toutes responsabilités sur l'usage qui peut en etre fait....Ouf..me voilà couvert.
____________________
Roro

   
Le 15/05/2012 à 20h27

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
Mais où j'aurais mis le témoin d'achat ?

c'est qui sui-ci ?



Petite esthétique nouvelle pour les pions...

Code VB :
    [affPion]
        #g "backcolor ";CouleurFond$;" ; color ";CouleurFond$;" ; size 1"
        #g "place ";oldXpion(joueur)-16;" ";oldYpion(joueur)-11;" ; boxfilled ";oldXpion(joueur)+18;" ";oldYpion(joueur)+32  ' l'efface à son ancienne position,
        #g "backcolor ";colJ$(joueur);" ; color ";colJ$(joueur)
        #g "place ";posXpion(joueur);" ";posYpion(joueur);" ; circlefilled 8"  ' puis le dessine à la nouvelle position.
        #g "place ";posXpion(joueur);" ";posYpion(joueur)+18;" ; circlefilled 12"
        #g "place ";posXpion(joueur)-12;" ";posYpion(joueur)+21;" ; boxfilled ";posXpion(joueur)+12;" ";posYpion(joueur)+22+8
        #g "color black"
        #g "place ";posXpion(joueur)-3;" ";posYpion(joueur)+23;";|";joueur
        oldXpion(joueur) = posXpion(joueur)
        oldYpion(joueur) = posYpion(joueur)  'mémorise comme ancienne position pour ce joueur (en pixels).
    return
 


@+



Edité par cassiope01 Le 15/05/2012 à 20h28
____________________
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    
Jeux » Mononopy exercice  

 |  |

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