FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Jeu de reflexion : MASTERMIND Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Jeu de reflexion : MASTERMIND Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Jeu de reflexion : MASTERMIND Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Jeu de reflexion : MASTERMIND Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Jeu de reflexion : MASTERMIND Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Jeu de reflexion : MASTERMIND Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Jeu de reflexion : MASTERMIND Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Jeu de reflexion : MASTERMIND Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Jeu de reflexion : MASTERMIND Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Jeu de reflexion : MASTERMIND Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Jeu de reflexion : MASTERMIND Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Jeu de reflexion : MASTERMIND Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Jeu de reflexion : MASTERMIND Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Jeu de reflexion : MASTERMIND Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Jeu de reflexion : MASTERMIND Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
SSD interne Crucial BX500 2,5″ SATA – 500 ...
Voir le deal
29.99 €

 

 Jeu de reflexion : MASTERMIND

Aller en bas 
+2
Jicehel
Minibug
6 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 12:14

Bonjour a tous

voila un classique des jeux de reflexion.
Il y a encore les options a coder. je vais les faire a suivre...

Bon amusement Very Happy

Code:

 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MASTERMIND  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MiniBug - JUILLET 2012  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 
 ' --------------------------------------------------- INITIALISATION VARIABLES ET LABELS ---------------------------------------------------
 dim x%,y%,r%,n%,coul%,coulr%,coulv%,coulb%,couleur%(8,3),selection%,proposition$,tour%,choix$,tirage$,arret%,texte$,existe%,position%
 label Nouvelle_partie,Options,Regles,quitter,choix,boutton,initialisation,selection_couleur
 tour%=1 : arret%=0
 data 187,11,11,255,255,0,0,210,0,0,0,200,237,127,16,255,255,255,161,6,132,253,63,146
 
 ' --------------------------------------------------- INITIALISATION GRAPHIQUE FENETRES ---------------------------------------------------
 caption 0,"REFLEXION" : border_small 0 : left 0,400 : color 0,0,0,0 : width 0,616 : height 0,900
 alpha 9 : font_color 9,255,255,255 : left 9,105 : top 9,5 : width 9,400 : height 9,50 : FONT_NAME 9,"@FangSong" : FONT_SIZE 9,60 : caption 9,"MASTERMIND"
 form 20 : border_small 20 : color 20,100,100,100 : left 20,200 : top 20,50 : width 20,1000 : height 20,800
 alpha 21 :parent 21,20 : color 21,100,100,100 : left 21,8 : top 21,8 : width 21,567 : height 21,313 : FONT_SIZE 21,10
 button 22 : caption 22,"Ok" : parent 22,20 : top 22,700 : left 22,850 : width 22,100 : height 22,50 : hide 20 : on_click 22,boutton
 form 30 : border_small 30 : color 30,100,100,100 : left 30,550 : top 30,300 : width 30,295 : height 30,400
 button 31 : caption 31,"Ok" : parent 31,30 : top 31,335 : left 31,200 : hide 30 : on_click 31,boutton
 container_option 50 : parent 50,30 : left 50,5 : top 50,5 : width 50,270 : height 50,100 : color 50,0,0,0 : font_color 50,255,255,255 : caption 50,"CHOIX DE LA COMBINAISON"
 option 52 : parent 52,50 : top 52,30 : left 52,10 : width 52,250 : caption 52,"Choisir la combinaison" : inactive 52
 option 53 : parent 53,50 : top 53,60 : left 53,10 : width 53,250 : caption 53,"Deviner la combinaison" : mark_on 53
 container 60 : parent 60,30 : left 60,5 : top 60,115 : width 60,270 : height 60,100 : color 60,0,0,0 : font_color 60,255,255,255 : caption 60,"COULEURS DES PIONS"
 option 62 : parent 62,60 : top 62,30 : left 62,10 : width 62,250 : caption 62,"Plusieurs pions de la même couleur" : inactive 62
 option 63 : parent 63,60 : top 63,60 : left 63,10 : width 63,250 : caption 63,"Un seul pion de la même couleur" : mark_on 63
 container 70 : parent 70,30 : left 70,5 : top 70,225 : width 70,270 : height 70,100 : color 70,0,0,0 : font_color 70,255,255,255 : caption 70,"ABSENCE DES PIONS"
 option 72 : parent 72,70 : top 72,30 : left 72,10 : width 72,250 : caption 72,"Absence d'un ou de plusieurs pions" : inactive 72
 option 73 : parent 73,70 : top 73,60 : left 73,10 : width 73,250 : caption 73,"Présence de tous les pions" : mark_on 73
 
 ' --------------------------------------------------- INITIALISATION MENU ---------------------------------------------------
 main_menu 1
 sub_menu 2 : caption 2,"Nouvelle partie" : parent 2, 1 : on_click 2, nouvelle_partie
 sub_menu 3 : caption 3,"Options" : parent 3, 1  : on_click 3, Options
 sub_menu 4 : caption 4,"Régles du jeu" : parent 4, 1 : on_click 4, Regles
 sub_menu 5 : caption 5,"Quitter" : parent 5, 1 : on_click 5,quitter
 end
 
 ' --------------------------------------------------- LANCEMENT PARTIE ---------------------------------------------------
 Nouvelle_partie:
 for n%=2 to 4 : inactive n% : next n% : hide 20 : hide 30
 gosub initialisation
 
 ' Nombre de tours a effectuer
 
 for tour%=1 to 10
    proposition$="" : existe%=0 : position%=0
    for selection%=1 to 6
      if object_exists(40)=1
          2D_TARGET_IS 0
          delete 40
      end_if
      picture 40  : top 40,780-(tour%*70) : width 40,410 : height 40,50 : color 40,120,120,120
      2D_TARGET_IS 40
      restore
     
      ' Affichage de la barre de choix des 8 couleurs
     
      for x%=1 to 8
          read couleur%(x%,1): read couleur%(x%,2) : read couleur%(x%,3)
          2D_FILL_COLOR couleur%(x%,1),couleur%(x%,2),couleur%(x%,3) : 2D_PEN_WIDTH 3 : 2d_circle x%*50-20,25,20
      next x%
      r%=0
      repeat
          coulb%=COLOR_PIXEL_BLUE(40,MOUSE_X_LEFT_DOWN(40),25)
          coulv%=COLOR_PIXEL_GREEN(40,MOUSE_X_LEFT_DOWN(40),25)
          coulr%=COLOR_PIXEL_RED(40,MOUSE_X_LEFT_DOWN(40),25)
          coul%=coulr%+coulv%+coulb%
          if coul%<>360 and coul%<>0
           
            ' la selection du joueur se trouve dans proposition$
            ' on code de 1 a 8 selon la couleur (Somme des RVB)
           
            select coul%
                case 200 : proposition$=proposition$+"4"
                case 209 : proposition$=proposition$+"1"
                case 210 : proposition$=proposition$+"3"
                case 299 : proposition$=proposition$+"7"
                case 380 : proposition$=proposition$+"5"
                case 462 : proposition$=proposition$+"8"
                case 510 : proposition$=proposition$+"2"
                case 765 : proposition$=proposition$+"6"
                end_select
               
                ' On verifie si la couleur n'est pas deja prise (r%)
               
                if instr(left$(proposition$,len(proposition$)-1),right$(proposition$,1))=0
                  r%=1
                else
                  proposition$=left$(proposition$,len(proposition$)-1)
                  r%=0
                end_if
          else
            r%=0
          end_if
      until r%=1
      if instr(tirage$,right$(proposition$,1))<>0
          existe%=existe%+1
      end_if
      gosub selection_couleur
    next selection%
   
    ' on verifie la position et les couleurs par rapport au tirage
   
    for n%=1 to 6
      if mid$(proposition$,n%,1)=mid$(tirage$,n%,1)
          position%=position%+1
          existe%=existe%-1
      end_if
    next n%
    ' on affiche les pions rouges et noirs pour savoir si la combinaison est bonne
    for n%=1 to existe%+position%
      if n%<position%+1
          2D_FILL_COLOR 187,11,11
      else
          2D_FILL_COLOR 255,255,255
      end_if
      2D_PEN_WIDTH 3 : 2d_circle n%*60+392-n%*30,770-(tour%*70),10
    next n%
   
    ' pour le debogage on affiche cette ligne - elle donne le resultats des pions noirs et rouges et le tirage
   
    rem  message "Il y a "+str$(position%)+" bien placé(s) "+str$(existe%)+" pions qui existent dans "+tirage$
   
    ' si on a gagné on sort...
   
    if position%=6 then exit_for
 next tour%
 
 ' on affichage le resultat si gagné ou perdu
 
 picture 40  : top 40,90 : left 40,100 : width 40,410 : height 40,50 : color 40,120,120,120
 2D_TARGET_IS 40
 for x%=1 to 6
    2D_FILL_COLOR couleur%(val(mid$(tirage$,x%,1)),1),couleur%(val(mid$(tirage$,x%,1)),2),couleur%(val(mid$(tirage$,x%,1)),3)
    2D_PEN_WIDTH 3 : 2d_circle x%*70-40,25,20
 next x%
 if position%=6
    message "BRAVO ! vous avez gagné en "+str$(tour%)+" tours."
    hide 40 : 2D_TARGET_IS 0 : delete 40
 else
    message "DOMMAGE ! vous y étiez presque..."
 end_if
 
 ' Et ca repart !
 
 for n%=2 to 4 : active n% : next n%
 gosub initialisation
return

' --------------------------------------------------- INITIALISATION DU JEU ---------------------------------------------------
initialisation:
  if object_exists(10)=1
      2D_TARGET_IS 0
      delete 10
  end_if
 
  ' on affiche les cases vides des 10 tours + cases des pions noirs et rouges
 
  picture 10 : left 10,0 : top 10,100 : width 10,600 : height 10,740 : color 10,0,0,0
  2D_TARGET_IS 10
  for x%=45 to 345 step 60
      for y%=70 to 760 step 70
        2D_PEN_COLOR 20,20,20 : 2D_FILL_COLOR 55,55,55 : 2D_PEN_WIDTH 3 : 2d_circle x%,y%,20 : 2d_circle x%+400-x%/2,y%,10
      next y%
  next x%
  tirage$=""
 
  ' calcul du tirage aléatoire de la combinaison a trouver (tirage$) couleur=chiffre de 1 a 8 / exemple : tirage$="123456"
 
  repeat
      choix:
      choix$=str$(int(RND(9)))
      for n%=1 to len(tirage$)
        if mid$(tirage$,n%,1)=choix$
            choix$="0"
        end_if
      next n%
      if choix$="0"
        goto choix
      end_if
      tirage$=tirage$+choix$
  until len(tirage$)=6
return

' --------------------------------------------------- CHOIX DES COULEURS ---------------------------------------------------
selection_couleur:
  2D_TARGET_IS 10 : delete 40
  2D_FILL_COLOR coulr%,coulv%,coulb% : 2D_PEN_WIDTH 3 : 2d_circle selection%*60-15,770-(tour%*70),20
return

' --------------------------------------------------- OPTIONS ---------------------------------------------------
Options:
  show 30 : inactive 3 : inactive 4
return

' --------------------------------------------------- REGLES ---------------------------------------------------
Regles:
  show 20 : caption 20,"Régles" : inactive 3 : inactive 4
  texte$=""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      REGLES DU JEU"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                          Le Mastermind est un jeu de société, de réflexion, et de déduction, inventé par Mordecai Meirowitz dans les années 1970."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      PRESENTATION"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                            Il se présente généralement sous la forme d'un plateau perforé de 10 rangées de quatre trous pouvant accueillir des pions de couleurs."+CHR$(10)
  texte$=texte$+"                Le nombre de pions de couleurs différentes est de 8 et les 8 couleurs sont généralement : rouge, jaune, vert, bleu, orange, blanc, violet, fuchsia."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                Il y a également des pions blancs et rouges (ou noirs) utilisés pour donner des indications à chaque étape du jeu."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Il existe de nombreuses variantes suivant le nombre de couleurs, de rangées ou de trous."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          PRINCIPE"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Un joueur commence par placer son choix de pions sans qu'ils soient vus de l'autre joueur"+CHR$(10)
  texte$=texte$+"                                                                          à l'arrière d'un cache qui les masquera à la vue de celui-ci jusqu'à la fin de la manche."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                    Le joueur qui n'a pas sélectionné les pions doit trouver quels sont les quatre pions, c'est-à-dire leurs couleurs et positions."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                              Pour cela, à chaque tour, le joueur doit se servir de pions pour remplir une rangée selon l'idée qu'il se fait des pions dissimulés."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                Une fois les pions placés, l'autre joueur indique :"+CHR$(10)
  texte$=texte$+"                                                                  le nombre de pions de la bonne couleur bien placés en utilisant le même nombre de pions rouges ; "+CHR$(10)
  texte$=texte$+"                                                                                    le nombre de pions de la bonne couleur, mais mal placés, avec les pions blancs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"Il arrive donc surtout en début de partie qu'il ne fasse rien concrètement et qu'il n'ait à dire qu'aucun pion ne correspond, en couleur ou en couleur et position."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                      La tactique du joueur actif consiste à sélectionner en fonction des coups précédents, couleurs et positions,"+CHR$(10)
  texte$=texte$+"  de manière à obtenir le maximum d'informations de la réponse du partenaire puisque le nombre de propositions est limité par le nombre de rangées de trous du jeu."+CHR$(10)
  texte$=texte$+"                                      Dans la plupart des cas, il s'efforce de se rapprocher le plus possible de la solution, compte-tenu des réponses précédentes,"+CHR$(10)
  texte$=texte$+"                                            mais il peut aussi former une combinaison dans le seul but de vérifier une partie des conclusions des coups précédents"+CHR$(10)
  texte$=texte$+"                                                              et de faire en conséquence la proposition la plus propice à la déduction d'une nouvelle information."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                            Le joueur gagne cette manche s'il donne la bonne combinaison de pions sur la dernière rangée ou avant."+CHR$(10)
  texte$=texte$+"                                                                                              Dans tous les cas, c'est à son tour de choisir les pions à découvrir."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          VARIANTES"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                              Selon le niveau des joueurs, un même jeu peut être rendu plus difficile en autorisant plusieurs pions"+CHR$(10)
  texte$=texte$+"                                                                                      de la même couleur, voire en autorisant l'absence d'un pion ou de plusieurs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                        Sources WIKIPEDIA - http://fr.wikipedia.org/wiki/Mastermind"+CHR$(10)
  caption 21,texte$
return

boutton:
  hide 20 : hide 30 :  active 3 : active 4 : active 5
return

quitter:
  terminate
  end
 
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 13:30

Cool ça, un bouveau jeu Wink Je testerai ce soir.
Entre le puzzle les sources de bignono et ton nouveau jeu, Panoramic vas m'occuper un peu ce soir.
Merci Minibug pour ce partage de sources
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Jeu de reflexion : MASTERMIND Empty
MessageSujet: re   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 13:39

Bravo !

Il te reste quelques truc à voir, comme moi pour le puzzle
mais c'est super même si je ne suis vraiment pas bon à ce jeu... Laughing


Ps : comme pour le mien, il te faut voir les arrêt intempestif pendant le jeu en cours,
essayes , tu auras un message " Repeat not found line...."
sauf que çà a rien à voir avec cette ligne... Laughing
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 13:43

bonjour ygeronimi

Oui j'ai vu mais je ne sais pas comment gerer cela car je suis dans une boucle repeat-until.
j'ai essayé avec exit_repeat sans resultat.

si quelqu'un a une idée ...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Jeu de reflexion : MASTERMIND Empty
MessageSujet: re   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 13:56

Je ne suis pas un sepcialiste du truc mais
perso je vais voir du côté de "on_error_go_to"

et je me rappelle aussi de sujet sur la gestion de la fermeture par la croix
qui parfois pause un problème.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 14:11

Eviter les gosub dans une boucle
Vous pouvez utiliser une variable quand il faut sortir de la boucle
(genre au début sorte vaut 0, s'il faut sortir => mettre sortie à 1)
dans votre boucle vous rajouter un test si sortie =1 (avec un exit ou dans vos condition de sortie selon le programme)
Une fosi sortie de la boucle, vous faite votre gosub et comme ça vous ne serrez plus embété
(Si vous avez plusieurs boucle, mettez plusieurs variables sinon avec les événement genre clic, vous risquez d'avoir des problème de variable qui a une valeur qu'elle ne devrait pas avoir
J'espère que j'ai réussi à expliquer l'idée de manière compréhensible (j'ai parfois du mal à m'expliquer simplement ...)
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 14:23

J'ai pas le temps de regarder le code, mais j'ai essayé. çà promet...

Une remarque: les couleurs de la rubrique d'aide (caractères noires sur fond gris foncé) c'est pas le pied pour mes yeux. Very Happy

Bon courage, A+

Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 14:49

Salut Minibug.

Un beau classique en perspective.
Je t’encourage à le finaliser et à l’améliorer.
Tu as fais un bon boulot, mais (hé oui, je fais toujours des mais)
Il parait que les dimensions de ton écran se mesurent en mètres. Les fenêtres sont trop grandes tandis que la 1ere est étroite.

Petite remarque : l’écriture noire sur fond gris est pénible à lire pour des jeunes vieux à lunettes comme moi.
Le end en fin de programme n’a aucun effet et est donc inutile.
Et pour finir avec les remarques, Minibug, il y a un mini bug dans ton programme : lorsqu’on clique sur ‘Nouvelle partie’ puis sur ‘quitter’ on a un message d’erreur : ‘ (67) No corresponding REPEAT found.Line 250’.

bon je m'arrête ici.

Bonne continuation.

lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 15:09

Voici le correctif

plus de bug suite a l'arret et changement des couleurs pour les regles...

Code:

 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MASTERMIND  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MiniBug - JUILLET 2012  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


 ' --------------------------------------------------- INITIALISATION VARIABLES ET LABELS ---------------------------------------------------
 dim x%,y%,r%,n%,coul%,coulr%,coulv%,coulb%,couleur%(8,3),selection%,proposition$,tour%,choix$,tirage$,arret%,texte$,existe%,position%
 label Nouvelle_partie,Options,Regles,quitter,choix,boutton,initialisation,selection_couleur,erreur
 tour%=1 : arret%=0
 data 187,11,11,255,255,0,0,210,0,0,0,200,237,127,16,255,255,255,161,6,132,253,63,146

 ' --------------------------------------------------- INITIALISATION GRAPHIQUE FENETRES ---------------------------------------------------
 caption 0,"REFLEXION" : border_small 0 : left 0,400 : color 0,0,0,0 : width 0,616 : height 0,900
 alpha 9 : font_color 9,255,255,255 : left 9,105 : top 9,5 : width 9,400 : height 9,50 : FONT_NAME 9,"@FangSong" : FONT_SIZE 9,60 : caption 9,"MASTERMIND"
 form 20 : border_small 20 : color 20,100,100,100 : left 20,200 : top 20,50 : width 20,1005 : height 20,785
 alpha 21 :parent 21,20 : color 21,0,0,0 : font_color 21,255,255,255 : left 21,8 : top 21,8 : width 21,567 : height 21,313 : FONT_SIZE 21,10
 button 22 : caption 22,"Ok" : parent 22,20 : top 22,685 : left 22,870 : width 22,100 : height 22,50 : hide 20 : on_click 22,boutton
 form 30 : border_small 30 : color 30,100,100,100 : left 30,550 : top 30,300 : width 30,295 : height 30,400
 button 31 : caption 31,"Ok" : parent 31,30 : top 31,335 : left 31,200 : hide 30 : on_click 31,boutton
 container_option 50 : parent 50,30 : left 50,5 : top 50,5 : width 50,270 : height 50,100 : color 50,0,0,0 : font_color 50,255,255,255 : caption 50,"CHOIX DE LA COMBINAISON"
 option 52 : parent 52,50 : top 52,30 : left 52,10 : width 52,250 : caption 52,"Choisir la combinaison" : inactive 52
 option 53 : parent 53,50 : top 53,60 : left 53,10 : width 53,250 : caption 53,"Deviner la combinaison" : mark_on 53
 container 60 : parent 60,30 : left 60,5 : top 60,115 : width 60,270 : height 60,100 : color 60,0,0,0 : font_color 60,255,255,255 : caption 60,"COULEURS DES PIONS"
 option 62 : parent 62,60 : top 62,30 : left 62,10 : width 62,250 : caption 62,"Plusieurs pions de la même couleur" : inactive 62
 option 63 : parent 63,60 : top 63,60 : left 63,10 : width 63,250 : caption 63,"Un seul pion de la même couleur" : mark_on 63
 container 70 : parent 70,30 : left 70,5 : top 70,225 : width 70,270 : height 70,100 : color 70,0,0,0 : font_color 70,255,255,255 : caption 70,"ABSENCE DES PIONS"
 option 72 : parent 72,70 : top 72,30 : left 72,10 : width 72,250 : caption 72,"Absence d'un ou de plusieurs pions" : inactive 72
 option 73 : parent 73,70 : top 73,60 : left 73,10 : width 73,250 : caption 73,"Présence de tous les pions" : mark_on 73

 ' --------------------------------------------------- INITIALISATION MENU ---------------------------------------------------
 main_menu 1
 sub_menu 2 : caption 2,"Nouvelle partie" : parent 2, 1 : on_click 2, nouvelle_partie
 sub_menu 3 : caption 3,"Options" : parent 3, 1  : on_click 3, Options
 sub_menu 4 : caption 4,"Régles du jeu" : parent 4, 1 : on_click 4, Regles
 sub_menu 5 : caption 5,"Quitter" : parent 5, 1 : on_click 5,quitter

 on_error_goto erreur

 end

 ' --------------------------------------------------- LANCEMENT PARTIE ---------------------------------------------------
 Nouvelle_partie:
 for n%=2 to 4 : inactive n% : next n% : hide 20 : hide 30 :arret%=0
 gosub initialisation

 ' Nombre de tours a effectuer

 for tour%=1 to 10
    proposition$="" : existe%=0 : position%=0
    for selection%=1 to 6
      if object_exists(40)=1
          2D_TARGET_IS 0
          delete 40
      end_if
      picture 40  : top 40,780-(tour%*70) : width 40,410 : height 40,50 : color 40,120,120,120
      2D_TARGET_IS 40
      restore

      ' Affichage de la barre de choix des 8 couleurs

      for x%=1 to 8
          read couleur%(x%,1): read couleur%(x%,2) : read couleur%(x%,3)
          2D_FILL_COLOR couleur%(x%,1),couleur%(x%,2),couleur%(x%,3) : 2D_PEN_WIDTH 3 : 2d_circle x%*50-20,25,20
      next x%
      r%=0
      repeat
          coulb%=COLOR_PIXEL_BLUE(40,MOUSE_X_LEFT_DOWN(40),25)
          coulv%=COLOR_PIXEL_GREEN(40,MOUSE_X_LEFT_DOWN(40),25)
          coulr%=COLOR_PIXEL_RED(40,MOUSE_X_LEFT_DOWN(40),25)
          coul%=coulr%+coulv%+coulb%
          if coul%<>360 and coul%<>0

            ' la selection du joueur se trouve dans proposition$
            ' on code de 1 a 8 selon la couleur (Somme des RVB)

            select coul%
                case 200 : proposition$=proposition$+"4"
                case 209 : proposition$=proposition$+"1"
                case 210 : proposition$=proposition$+"3"
                case 299 : proposition$=proposition$+"7"
                case 380 : proposition$=proposition$+"5"
                case 462 : proposition$=proposition$+"8"
                case 510 : proposition$=proposition$+"2"
                case 765 : proposition$=proposition$+"6"
                end_select

                ' On verifie si la couleur n'est pas deja prise (r%)

                if instr(left$(proposition$,len(proposition$)-1),right$(proposition$,1))=0
                  r%=1
                else
                  proposition$=left$(proposition$,len(proposition$)-1)
                  r%=0
                end_if
          else
            r%=0
          end_if
      until r%=1 or arret%=1
      if instr(tirage$,right$(proposition$,1))<>0
          existe%=existe%+1
      end_if
      gosub selection_couleur
      if arret%=1 then exit_for
    next selection%

    ' on verifie la position et les couleurs par rapport au tirage

    for n%=1 to 6
      if mid$(proposition$,n%,1)=mid$(tirage$,n%,1)
          position%=position%+1
          existe%=existe%-1
      end_if
    next n%
    ' on affiche les pions rouges et noirs pour savoir si la combinaison est bonne
    for n%=1 to existe%+position%
      if n%<position%+1
          2D_FILL_COLOR 187,11,11
      else
          2D_FILL_COLOR 255,255,255
      end_if
      2D_PEN_WIDTH 3 : 2d_circle n%*60+392-n%*30,770-(tour%*70),10
    next n%

    ' pour le debogage on affiche cette ligne - elle donne le resultats des pions noirs et rouges et le tirage

    rem  message "Il y a "+str$(position%)+" bien placé(s) "+str$(existe%)+" pions qui existent dans "+tirage$

    ' si on a gagné on sort...

    if position%=6 or arret%=1 then exit_for
 next tour%

 ' on affichage le resultat si gagné ou perdu

 picture 40  : top 40,90 : left 40,100 : width 40,410 : height 40,50 : color 40,120,120,120
 2D_TARGET_IS 40
 for x%=1 to 6
    2D_FILL_COLOR couleur%(val(mid$(tirage$,x%,1)),1),couleur%(val(mid$(tirage$,x%,1)),2),couleur%(val(mid$(tirage$,x%,1)),3)
    2D_PEN_WIDTH 3 : 2d_circle x%*70-40,25,20
 next x%
 if position%=6
    message "BRAVO ! vous avez gagné en "+str$(tour%)+" tours."
    hide 40 : 2D_TARGET_IS 0 : delete 40
 else
    message "DOMMAGE ! vous y étiez presque..."
 end_if

 ' Et ca repart !

 for n%=2 to 4 : active n% : next n%
 gosub initialisation
 if arret%=1 then terminate
return

' --------------------------------------------------- INITIALISATION DU JEU ---------------------------------------------------
initialisation:
  if object_exists(10)=1
      2D_TARGET_IS 0
      delete 10
  end_if

  ' on affiche les cases vides des 10 tours + cases des pions noirs et rouges

  picture 10 : left 10,0 : top 10,100 : width 10,600 : height 10,740 : color 10,0,0,0
  2D_TARGET_IS 10
  for x%=45 to 345 step 60
      for y%=70 to 760 step 70
        2D_PEN_COLOR 20,20,20 : 2D_FILL_COLOR 55,55,55 : 2D_PEN_WIDTH 3 : 2d_circle x%,y%,20 : 2d_circle x%+400-x%/2,y%,10
      next y%
  next x%
  tirage$=""

  ' calcul du tirage aléatoire de la combinaison a trouver (tirage$) couleur=chiffre de 1 a 8 / exemple : tirage$="123456"

  repeat
      choix:
      choix$=str$(int(RND(9)))
      for n%=1 to len(tirage$)
        if mid$(tirage$,n%,1)=choix$
            choix$="0"
        end_if
      next n%
      if choix$="0"
        goto choix
      end_if
      tirage$=tirage$+choix$
  until len(tirage$)=6
return

' --------------------------------------------------- CHOIX DES COULEURS ---------------------------------------------------
selection_couleur:
  2D_TARGET_IS 10 : delete 40
  2D_FILL_COLOR coulr%,coulv%,coulb% : 2D_PEN_WIDTH 3 : 2d_circle selection%*60-15,770-(tour%*70),20
return

' --------------------------------------------------- OPTIONS ---------------------------------------------------
Options:
  show 30 : inactive 3 : inactive 4
return

' --------------------------------------------------- REGLES ---------------------------------------------------
Regles:
  show 20 : caption 20,"Régles" : inactive 3 : inactive 4
  texte$=""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      REGLES DU JEU"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                          Le Mastermind est un jeu de société, de réflexion, et de déduction, inventé par Mordecai Meirowitz dans les années 1970."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      PRESENTATION"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                            Il se présente généralement sous la forme d'un plateau perforé de 10 rangées de quatre trous pouvant accueillir des pions de couleurs."+CHR$(10)
  texte$=texte$+"                Le nombre de pions de couleurs différentes est de 8 et les 8 couleurs sont généralement : rouge, jaune, vert, bleu, orange, blanc, violet, fuchsia."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                Il y a également des pions blancs et rouges (ou noirs) utilisés pour donner des indications à chaque étape du jeu."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Il existe de nombreuses variantes suivant le nombre de couleurs, de rangées ou de trous."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          PRINCIPE"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Un joueur commence par placer son choix de pions sans qu'ils soient vus de l'autre joueur"+CHR$(10)
  texte$=texte$+"                                                                          à l'arrière d'un cache qui les masquera à la vue de celui-ci jusqu'à la fin de la manche."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                    Le joueur qui n'a pas sélectionné les pions doit trouver quels sont les quatre pions, c'est-à-dire leurs couleurs et positions."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                              Pour cela, à chaque tour, le joueur doit se servir de pions pour remplir une rangée selon l'idée qu'il se fait des pions dissimulés."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                Une fois les pions placés, l'autre joueur indique :"+CHR$(10)
  texte$=texte$+"                                                                  le nombre de pions de la bonne couleur bien placés en utilisant le même nombre de pions rouges ; "+CHR$(10)
  texte$=texte$+"                                                                                    le nombre de pions de la bonne couleur, mais mal placés, avec les pions blancs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"Il arrive donc surtout en début de partie qu'il ne fasse rien concrètement et qu'il n'ait à dire qu'aucun pion ne correspond, en couleur ou en couleur et position."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                      La tactique du joueur actif consiste à sélectionner en fonction des coups précédents, couleurs et positions,"+CHR$(10)
  texte$=texte$+"  de manière à obtenir le maximum d'informations de la réponse du partenaire puisque le nombre de propositions est limité par le nombre de rangées de trous du jeu."+CHR$(10)
  texte$=texte$+"                                      Dans la plupart des cas, il s'efforce de se rapprocher le plus possible de la solution, compte-tenu des réponses précédentes,"+CHR$(10)
  texte$=texte$+"                                            mais il peut aussi former une combinaison dans le seul but de vérifier une partie des conclusions des coups précédents"+CHR$(10)
  texte$=texte$+"                                                              et de faire en conséquence la proposition la plus propice à la déduction d'une nouvelle information."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                            Le joueur gagne cette manche s'il donne la bonne combinaison de pions sur la dernière rangée ou avant."+CHR$(10)
  texte$=texte$+"                                                                                              Dans tous les cas, c'est à son tour de choisir les pions à découvrir."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          VARIANTES"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                              Selon le niveau des joueurs, un même jeu peut être rendu plus difficile en autorisant plusieurs pions"+CHR$(10)
  texte$=texte$+"                                                                                      de la même couleur, voire en autorisant l'absence d'un pion ou de plusieurs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                        Sources WIKIPEDIA - http://fr.wikipedia.org/wiki/Mastermind"+CHR$(10)
  caption 21,texte$
return

boutton:
  hide 20 : hide 30 :  active 3 : active 4 : active 5
return

erreur:
 if  error_number=67
 arret%=1
 end_if
return

quitter:
  terminate

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyVen 3 Aoû 2012 - 16:10

@Minibug

J’ai apporté les modifications suivantes à ton programme.
Il s’agit simplement d’un point de vue personnel.
Libre à toi d’approuver ou non.

Ligne 12 : j’ai changé ‘left 0,400’ par ‘left 0,10’
Ligne 13 : j’ai changé ‘font_size 9,60’ par font_size 9,30’
Ligne 14 : j’ai changé ‘left 20,200’ par ‘left 20,10’ et ‘top 20,50’ par ‘top 20,5’
Ligne 15 : j’ai changé ‘width 21,,567’ par ‘width 21, 667’ et ‘top 21,8’ par ‘top 21,0’ et j’ai ajouté ‘font_bold 21’

Cette dernière instruction fait que la lecture des règles devient plus aisée. Mais il reste à revoir la longueur des lignes qui sont trop longues.

Comme écrit ci-dessus, ce n’est qu’une question de gout !

sunny sunny sunny lol! lol! lol! sunny sunny sunny

Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptySam 4 Aoû 2012 - 23:57

Minibug, je te mets ma version.
Elle n'est en rien une amélioration de la tienne, c'est juste une adaptation à mon écran qui est en 16/9 (large mais pas haut)
J'ai juste modifié la formule d'affichage pour appliquer le même principe pour la création et le remplissage en cours de partie (j'ai fais ça pour gagner du temps pour mon adaptation en hauteur)
Si quelqu'un d'autre à un portable, je pense que ça pourra lui être utile aussi Wink
Code:
 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MASTERMIND  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MiniBug - JUILLET 2012  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


 ' --------------------------------------------------- INITIALISATION VARIABLES ET LABELS ---------------------------------------------------
 dim x%,y%,r%,n%,coul%,coulr%,coulv%,coulb%,couleur%(8,3),selection%,proposition$,tour%,choix$,tirage$,arret%,texte$,existe%,position%
 label Nouvelle_partie,Options,Regles,quitter,choix,boutton,initialisation,selection_couleur,erreur
 tour%=1 : arret%=0
 data 187,11,11,255,255,0,0,210,0,0,0,200,237,127,16,255,255,255,161,6,132,253,63,146

 ' --------------------------------------------------- INITIALISATION GRAPHIQUE FENETRES ---------------------------------------------------
 caption 0,"REFLEXION" : border_small 0 : left 0,400 : color 0,0,0,0 : width 0,640 : height 0,730
 alpha 9 : font_color 9,255,255,255 : left 9,105 : top 9,5 : width 9,400 : height 9,50 : FONT_NAME 9,"@FangSong" : FONT_SIZE 9,60 : caption 9,"MASTERMIND"
 form 20 : border_small 20 : color 20,100,100,100 : left 20,200 : top 20,50 : width 20,1005 : height 20,640
 alpha 21 :parent 21,20 : color 21,0,0,0 : font_color 21,255,255,255 : left 21,8 : top 21,8 : width 21,567 : height 21,313 : FONT_SIZE 21,10
 button 22 : caption 22,"Ok" : parent 22,20 : top 22,685 : left 22,870 : width 22,100 : height 22,50 : hide 20 : on_click 22,boutton
 form 30 : border_small 30 : color 30,100,100,100 : left 30,550 : top 30,300 : width 30,295 : height 30,400
 button 31 : caption 31,"Ok" : parent 31,30 : top 31,335 : left 31,200 : hide 30 : on_click 31,boutton
 container_option 50 : parent 50,30 : left 50,5 : top 50,5 : width 50,270 : height 50,100 : color 50,0,0,0 : font_color 50,255,255,255 : caption 50,"CHOIX DE LA COMBINAISON"
 option 52 : parent 52,50 : top 52,30 : left 52,10 : width 52,250 : caption 52,"Choisir la combinaison" : inactive 52
 option 53 : parent 53,50 : top 53,60 : left 53,10 : width 53,250 : caption 53,"Deviner la combinaison" : mark_on 53
 container 60 : parent 60,30 : left 60,5 : top 60,115 : width 60,270 : height 60,100 : color 60,0,0,0 : font_color 60,255,255,255 : caption 60,"COULEURS DES PIONS"
 option 62 : parent 62,60 : top 62,30 : left 62,10 : width 62,250 : caption 62,"Plusieurs pions de la même couleur" : inactive 62
 option 63 : parent 63,60 : top 63,60 : left 63,10 : width 63,250 : caption 63,"Un seul pion de la même couleur" : mark_on 63
 container 70 : parent 70,30 : left 70,5 : top 70,225 : width 70,270 : height 70,100 : color 70,0,0,0 : font_color 70,255,255,255 : caption 70,"ABSENCE DES PIONS"
 option 72 : parent 72,70 : top 72,30 : left 72,10 : width 72,250 : caption 72,"Absence d'un ou de plusieurs pions" : inactive 72
 option 73 : parent 73,70 : top 73,60 : left 73,10 : width 73,250 : caption 73,"Présence de tous les pions" : mark_on 73

 ' --------------------------------------------------- INITIALISATION MENU ---------------------------------------------------
 main_menu 1
 sub_menu 2 : caption 2,"Nouvelle partie" : parent 2, 1 : on_click 2, nouvelle_partie
 sub_menu 3 : caption 3,"Options" : parent 3, 1  : on_click 3, Options
 sub_menu 4 : caption 4,"Régles du jeu" : parent 4, 1 : on_click 4, Regles
 sub_menu 5 : caption 5,"Quitter" : parent 5, 1 : on_click 5,quitter

 on_error_goto erreur

 end

 ' --------------------------------------------------- LANCEMENT PARTIE ---------------------------------------------------
 Nouvelle_partie:
 for n%=2 to 4 : inactive n% : next n% : hide 20 : hide 30 :arret%=0
 gosub initialisation

 ' Nombre de tours a effectuer

 for tour%=1 to 10
    proposition$="" : existe%=0 : position%=0
    for selection%=1 to 6
      if object_exists(40)=1
          2D_TARGET_IS 0
          delete 40
      end_if
      picture 40  : top 40,595-(tour%*50) : width 40,410 : height 40,50 : color 40,120,120,120
      2D_TARGET_IS 40
      restore

      ' Affichage de la barre de choix des 8 couleurs

      for x%=1 to 8
          read couleur%(x%,1): read couleur%(x%,2) : read couleur%(x%,3)
          2D_FILL_COLOR couleur%(x%,1),couleur%(x%,2),couleur%(x%,3) : 2D_PEN_WIDTH 3 : 2d_circle x%*50-20,25,20
      next x%
      r%=0
      repeat
          coulb%=COLOR_PIXEL_BLUE(40,MOUSE_X_LEFT_DOWN(40),25)
          coulv%=COLOR_PIXEL_GREEN(40,MOUSE_X_LEFT_DOWN(40),25)
          coulr%=COLOR_PIXEL_RED(40,MOUSE_X_LEFT_DOWN(40),25)
          coul%=coulr%+coulv%+coulb%
          if coul%<>360 and coul%<>0

            ' la selection du joueur se trouve dans proposition$
            ' on code de 1 a 8 selon la couleur (Somme des RVB)

            select coul%
                case 200 : proposition$=proposition$+"4"
                case 209 : proposition$=proposition$+"1"
                case 210 : proposition$=proposition$+"3"
                case 299 : proposition$=proposition$+"7"
                case 380 : proposition$=proposition$+"5"
                case 462 : proposition$=proposition$+"8"
                case 510 : proposition$=proposition$+"2"
                case 765 : proposition$=proposition$+"6"
                end_select

                ' On verifie si la couleur n'est pas deja prise (r%)

                if instr(left$(proposition$,len(proposition$)-1),right$(proposition$,1))=0
                  r%=1
                else
                  proposition$=left$(proposition$,len(proposition$)-1)
                  r%=0
                end_if
          else
            r%=0
          end_if
      until r%=1 or arret%=1
      if instr(tirage$,right$(proposition$,1))<>0
          existe%=existe%+1
      end_if
      gosub selection_couleur
      if arret%=1 then exit_for
    next selection%

    ' on verifie la position et les couleurs par rapport au tirage

    for n%=1 to 6
      if mid$(proposition$,n%,1)=mid$(tirage$,n%,1)
          position%=position%+1
          existe%=existe%-1
      end_if
    next n%
    ' on affiche les pions rouges et noirs pour savoir si la combinaison est bonne
    for n%=1 to existe%+position%
      if n%<position%+1
          2D_FILL_COLOR 187,11,11
      else
          2D_FILL_COLOR 255,255,255
      end_if
      2D_PEN_WIDTH 3 : 2d_circle n%*30+400,580-(tour%*50),10
    next n%

    ' pour le debogage on affiche cette ligne - elle donne le resultats des pions noirs et rouges et le tirage

    rem  message "Il y a "+str$(position%)+" bien placé(s) "+str$(existe%)+" pions qui existent dans "+tirage$

    ' si on a gagné on sort...

    if position%=6 or arret%=1 then exit_for
 next tour%

 ' on affichage le resultat si gagné ou perdu

 picture 40  : top 40,90 : left 40,100 : width 40,410 : height 40,50 : color 40,120,120,120
 2D_TARGET_IS 40
 for x%=1 to 6
    2D_FILL_COLOR couleur%(val(mid$(tirage$,x%,1)),1),couleur%(val(mid$(tirage$,x%,1)),2),couleur%(val(mid$(tirage$,x%,1)),3)
    2D_PEN_WIDTH 3 : 2d_circle x%*70-40,25,20
 next x%
 if position%=6
    message "BRAVO ! vous avez gagné en "+str$(tour%)+" tours."
    hide 40 : 2D_TARGET_IS 0 : delete 40
 else
    message "DOMMAGE ! vous y étiez presque..."
 end_if

 ' Et ca repart !

 for n%=2 to 4 : active n% : next n%
 gosub initialisation
 if arret%=1 then terminate
return

' --------------------------------------------------- INITIALISATION DU JEU ---------------------------------------------------
initialisation:
  if object_exists(10)=1
      2D_TARGET_IS 0
      delete 10
  end_if

  ' on affiche les cases vides des 10 tours + cases des pions noirs et rouges
  picture 10 : left 10,0 : top 10,90 : width 10,600 : height 10,580 : color 10,0,0,0
  2D_TARGET_IS 10
  for y%=1 to 10
      for x%=1 to 6
        2D_PEN_COLOR 20,20,20 : 2D_FILL_COLOR 55,55,55 : 2D_PEN_WIDTH 3 : 2d_circle x%*50 + 30,580 - y%* 50,20 : 2d_circle x%*30+400,580 - y%* 50,10
      next x%
  next y%
  tirage$=""

  ' calcul du tirage aléatoire de la combinaison a trouver (tirage$) couleur=chiffre de 1 a 8 / exemple : tirage$="123456"
  repeat
      choix:
      choix$=str$(int(RND(9)))
      for n%=1 to len(tirage$)
        if mid$(tirage$,n%,1)=choix$
            choix$="0"
        end_if
      next n%
      if choix$="0"
        goto choix
      end_if
      tirage$=tirage$+choix$
  until len(tirage$)=6
return

' --------------------------------------------------- CHOIX DES COULEURS ---------------------------------------------------
selection_couleur:
  2D_TARGET_IS 10 : delete 40
  2D_FILL_COLOR coulr%,coulv%,coulb% : 2D_PEN_WIDTH 3 : 2d_circle selection%*50+30,580-(tour%*50),20
return

' --------------------------------------------------- OPTIONS ---------------------------------------------------
Options:
  show 30 : inactive 3 : inactive 4
return

' --------------------------------------------------- REGLES ---------------------------------------------------
Regles:
  show 20 : caption 20,"Régles" : inactive 3 : inactive 4
  texte$=""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      REGLES DU JEU"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                          Le Mastermind est un jeu de société, de réflexion, et de déduction, inventé par Mordecai Meirowitz dans les années 1970."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      PRESENTATION"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                            Il se présente généralement sous la forme d'un plateau perforé de 10 rangées de quatre trous pouvant accueillir des pions de couleurs."+CHR$(10)
  texte$=texte$+"                Le nombre de pions de couleurs différentes est de 8 et les 8 couleurs sont généralement : rouge, jaune, vert, bleu, orange, blanc, violet, fuchsia."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                Il y a également des pions blancs et rouges (ou noirs) utilisés pour donner des indications à chaque étape du jeu."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Il existe de nombreuses variantes suivant le nombre de couleurs, de rangées ou de trous."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          PRINCIPE"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Un joueur commence par placer son choix de pions sans qu'ils soient vus de l'autre joueur"+CHR$(10)
  texte$=texte$+"                                                                          à l'arrière d'un cache qui les masquera à la vue de celui-ci jusqu'à la fin de la manche."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                    Le joueur qui n'a pas sélectionné les pions doit trouver quels sont les quatre pions, c'est-à-dire leurs couleurs et positions."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                              Pour cela, à chaque tour, le joueur doit se servir de pions pour remplir une rangée selon l'idée qu'il se fait des pions dissimulés."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                Une fois les pions placés, l'autre joueur indique :"+CHR$(10)
  texte$=texte$+"                                                                  le nombre de pions de la bonne couleur bien placés en utilisant le même nombre de pions rouges ; "+CHR$(10)
  texte$=texte$+"                                                                                    le nombre de pions de la bonne couleur, mais mal placés, avec les pions blancs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"Il arrive donc surtout en début de partie qu'il ne fasse rien concrètement et qu'il n'ait à dire qu'aucun pion ne correspond, en couleur ou en couleur et position."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                      La tactique du joueur actif consiste à sélectionner en fonction des coups précédents, couleurs et positions,"+CHR$(10)
  texte$=texte$+"  de manière à obtenir le maximum d'informations de la réponse du partenaire puisque le nombre de propositions est limité par le nombre de rangées de trous du jeu."+CHR$(10)
  texte$=texte$+"                                      Dans la plupart des cas, il s'efforce de se rapprocher le plus possible de la solution, compte-tenu des réponses précédentes,"+CHR$(10)
  texte$=texte$+"                                            mais il peut aussi former une combinaison dans le seul but de vérifier une partie des conclusions des coups précédents"+CHR$(10)
  texte$=texte$+"                                                              et de faire en conséquence la proposition la plus propice à la déduction d'une nouvelle information."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                            Le joueur gagne cette manche s'il donne la bonne combinaison de pions sur la dernière rangée ou avant."+CHR$(10)
  texte$=texte$+"                                                                                              Dans tous les cas, c'est à son tour de choisir les pions à découvrir."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          VARIANTES"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                              Selon le niveau des joueurs, un même jeu peut être rendu plus difficile en autorisant plusieurs pions"+CHR$(10)
  texte$=texte$+"                                                                                      de la même couleur, voire en autorisant l'absence d'un pion ou de plusieurs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                        Sources WIKIPEDIA - http://fr.wikipedia.org/wiki/Mastermind"+CHR$(10)
  caption 21,texte$
return

boutton:
  hide 20 : hide 30 :  active 3 : active 4 : active 5
return

erreur:
 if  error_number=67
 arret%=1
 end_if
return

quitter:
  terminate
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 10:08

merci pour ton intervention Jicehel : il est vrai que je n'y avait pas pensé.

Je travaille sur un portable 17" et donc effectivement pas prévu les affichages sur notebook ou 16/9.
Je tacherai de m'en souvenir. et d'ailleur je crois qu'il y a dans panoramic des fonctions concernant la taille de l'écran.
Il faut que je regarde tout cela.

merci à tous pour vos remontées et vos corrections.
Je vais codé les 3 options et dès que c'est okje met en ligne...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 10:11

Merci à toi Minibug et continu de faire de la concurence à Lodjo et ygeronimi Wink
Ton Mastermind est excellent (même s'il m'énerve un peu des fois Wink comme tout casse tête qui se respecte...)
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 10:20

@Minibug tu as SCREEN_X et SCREEN_Y qui te donnent la résolution de l'écran en pixels, ça permet d'ajuster les fenêtres en conséquence.
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 11:01

merci JL.
il me semblait avoir vu quelque chose comme ca.

A tester lors d'un prochain programme...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 14:26

Bravo ! sur celui là je sèche, il faut que je trouve une technique.

A+
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 17:39

Specialement pour toi jean claude :

j'ai rajoute les options 2 et 3 afin de rendre le jeu encore plus interressant...
- possibilité d'utiliser plusieurs fois la meme couleur
- possibilité de laisser des cases vides (ou cases noires)

il ne me reste plus qu'a code la 1ere option
choisir la combinaison ou la deviner

vous pouvez aussi utiliser la ligne de debogage (ligne 140) si elle peut vous aider mais là c'est de la triche...

Code:

 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MASTERMIND  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MiniBug - JUILLET 2012  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


 ' --------------------------------------------------- INITIALISATION VARIABLES ET LABELS ---------------------------------------------------
 dim x%,y%,r%,n%,coul%,coulr%,coulv%,coulb%,couleur%(9,3),selection%,proposition$,tour%,choix$,tirage$,arret%,retour%,texte$,existe%,position%,option%(3),existe_pion%
 label Nouvelle_partie,Options,Regles,quitter,recommence,choix,boutton,initialisation,selection_couleur,erreur
 label select_option_10,select_option_11,select_option_20,select_option_21,select_option_30,select_option_31
 data 187,11,11,255,255,0,0,210,0,0,0,200,237,127,16,255,255,255,161,6,132,253,63,146,1,1,1

 tour%=1 : arret%=0 : for n%=1 to 3 : option%(n%)=1 : next n%

 ' --------------------------------------------------- INITIALISATION GRAPHIQUE FENETRES ---------------------------------------------------
 caption 0,"REFLEXION" : border_small 0 : left 0,400 : color 0,0,0,0 : width 0,640 : height 0,730
 alpha 9 : font_color 9,255,255,255 : left 9,105 : top 9,5 : width 9,400 : height 9,50 : FONT_NAME 9,"@FangSong" : FONT_SIZE 9,60 : caption 9,"MASTERMIND"
 form 20 : border_small 20 : color 20,100,100,100 : left 20,200 : top 20,50 : width 20,1005 : height 20,640
 alpha 21 :parent 21,20 : color 21,0,0,0 : font_color 21,255,255,255 : left 21,8 : top 21,8 : width 21,567 : height 21,313 : FONT_SIZE 21,10
 button 22 : caption 22,"Ok" : parent 22,20 : top 22,685 : left 22,870 : width 22,100 : height 22,50 : hide 20 : on_click 22,boutton
 form 30 : border_small 30 : color 30,100,100,100 : left 30,550 : top 30,300 : width 30,295 : height 30,400
 button 31 : caption 31,"Ok" : parent 31,30 : top 31,335 : left 31,200 : hide 30 : on_click 31,boutton
 container_option 50 : parent 50,30 : left 50,5 : top 50,5 : width 50,270 : height 50,100 : color 50,0,0,0 : font_color 50,255,255,255 : caption 50,"CHOIX DE LA COMBINAISON"
 option 52 : parent 52,50 : top 52,30 : left 52,10 : width 52,250 : caption 52,"Choisir la combinaison" : on_click 52,select_option_10 : inactive 52
 option 53 : parent 53,50 : top 53,60 : left 53,10 : width 53,250 : caption 53,"Deviner la combinaison" : mark_on 53 : on_click 53,select_option_11
 container 60 : parent 60,30 : left 60,5 : top 60,115 : width 60,270 : height 60,100 : color 60,0,0,0 : font_color 60,255,255,255 : caption 60,"COULEURS DES PIONS"
 option 62 : parent 62,60 : top 62,30 : left 62,10 : width 62,250 : caption 62,"Plusieurs pions de la même couleur" : on_click 62,select_option_20
 option 63 : parent 63,60 : top 63,60 : left 63,10 : width 63,250 : caption 63,"Un seul pion de la même couleur" : mark_on 63 : on_click 63,select_option_21
 container 70 : parent 70,30 : left 70,5 : top 70,225 : width 70,270 : height 70,100 : color 70,0,0,0 : font_color 70,255,255,255 : caption 70,"ABSENCE DES PIONS"
 option 72 : parent 72,70 : top 72,30 : left 72,10 : width 72,250 : caption 72,"Absence d'un ou de plusieurs pions" : on_click 72,select_option_30
 option 73 : parent 73,70 : top 73,60 : left 73,10 : width 73,250 : caption 73,"Présence de tous les pions" : mark_on 73 : on_click 73,select_option_31

 ' --------------------------------------------------- INITIALISATION MENU ---------------------------------------------------
 main_menu 1
 sub_menu 2 : caption 2,"Nouvelle partie" : parent 2, 1 : on_click 2, nouvelle_partie
 sub_menu 3 : caption 3,"Options" : parent 3, 1  : on_click 3, Options
 sub_menu 4 : caption 4,"Régles du jeu" : parent 4, 1 : on_click 4, Regles
 sub_menu 5 : caption 5,"Quitter" : parent 5, 1 : on_click 5,quitter

 on_error_goto erreur

 end

 ' --------------------------------------------------- LANCEMENT PARTIE ---------------------------------------------------
 Nouvelle_partie:
 caption 2,"Arreter"
 for n%=3 to 4 : inactive n% : next n% : hide 20 : hide 30 :arret%=0 :retour%=0
 gosub initialisation

 ' Nombre de tours a effectuer

 for tour%=1 to 10
    proposition$=""
    for selection%=1 to 6
      if object_exists(40)=1
          2D_TARGET_IS 0
          delete 40
      end_if
      picture 40  : top 40,595-(tour%*50) : width 40,460-(option%(3)*50) : height 40,50 : color 40,120,120,120
      2D_TARGET_IS 40
      restore

      ' Affichage de la barre de choix des 8 ou 9 couleurs (9eme etant la case vide)

      for x%=1 to 9-option%(3)
          read couleur%(x%,1): read couleur%(x%,2) : read couleur%(x%,3)
          2D_FILL_COLOR couleur%(x%,1),couleur%(x%,2),couleur%(x%,3) : 2D_PEN_WIDTH 3 : 2d_circle x%*50-20,25,20
      next x%

      r%=0
     
      repeat
          coulb%=COLOR_PIXEL_BLUE(40,MOUSE_X_LEFT_DOWN(40),25)
          coulv%=COLOR_PIXEL_GREEN(40,MOUSE_X_LEFT_DOWN(40),25)
          coulr%=COLOR_PIXEL_RED(40,MOUSE_X_LEFT_DOWN(40),25)
          coul%=coulr%+coulv%+coulb%
          if coul%<>360 and coul%<>0

            ' la selection du joueur se trouve dans proposition$
            ' code de 1 a 9 selon la couleur (Somme des RVB)  le 9eme correspond au pion absent "0"
            select coul%
                case 3 : proposition$=proposition$+"0"
                case 200 : proposition$=proposition$+"4"
                case 209 : proposition$=proposition$+"1"
                case 210 : proposition$=proposition$+"3"
                case 299 : proposition$=proposition$+"7"
                case 380 : proposition$=proposition$+"5"
                case 462 : proposition$=proposition$+"8"
                case 510 : proposition$=proposition$+"2"
                case 765 : proposition$=proposition$+"6"
                end_select

                ' verifier si la couleur n'est pas deja prise (r%)
                if instr(left$(proposition$,len(proposition$)-1),right$(proposition$,1))=0  and option%(2)=1
                  r%=1
                else
                  if option%(2)=1
                      proposition$=left$(proposition$,len(proposition$)-1)
                      r%=0
                  else
                      r%=1
                  end_if
                end_if
          else
            r%=0
          end_if
      until r%=1 or arret%=1 or retour%=1
      gosub selection_couleur
      if arret%=1 or retour%=1 then exit_for
    next selection%

    ' verifier la position et les couleurs par rapport au tirage
    existe%=0 : position%=0
    for n%=1 to 6
      if mid$(proposition$,n%,1)=mid$(tirage$,n%,1)
          position%=position%+1
      end_if
      existe_pion%=0
      for x%=1 to 6
          if mid$(tirage$,n%,1)=mid$(proposition$,x%,1)
            existe_pion%=1

          end_if
      next x%
      if existe_pion%=1 then existe%=existe%+1
    next n%
    existe%=existe%-position%
   
    ' afficher les pions rouges et noirs pour savoir si la combinaison est bonne
    if position%<>0
      for n%=1 to position%
          2D_FILL_COLOR 187,11,11 : 2D_PEN_WIDTH 3 : 2d_circle n%*30+400,580-(tour%*50),10
      next n%
    end_if
    if existe%<>0
      for n%=position%+1 to position%+existe%
          2D_FILL_COLOR 255,255,255 : 2D_PEN_WIDTH 3 : 2d_circle n%*30+400,580-(tour%*50),10
      next n%
    end_if
   
    ' pour le debogage on affiche cette ligne - elle donne le resultats des pions noirs et rouges et le tirage
    rem message "pion(s) de bien place(s) : "+str$(position%)+chr$(10)+"pion(s) de mal plac(e)s : "+str$(existe%)+chr$(10)+"Proposition :          "+proposition$+chr$(10)+"Tirage :                    "+tirage$

    ' si on a gagné on sort...
    if position%=6 or arret%=1 or retour%=1 then exit_for
 next tour%

 ' on affichage le resultat si gagné ou perdu
 picture 40  : top 40,90 : left 40,100 : width 40,410 : height 40,50 : color 40,120,120,120
 2D_TARGET_IS 40
 for x%=1 to 6
    2D_FILL_COLOR couleur%(val(mid$(tirage$,x%,1)),1),couleur%(val(mid$(tirage$,x%,1)),2),couleur%(val(mid$(tirage$,x%,1)),3)
    2D_PEN_WIDTH 3 : 2d_circle x%*70-40,25,20
 next x%
 if position%=6
    message "BRAVO ! vous avez gagné en "+str$(tour%)+" tours."
    hide 40 : 2D_TARGET_IS 0 : delete 40
 else
    message "DOMMAGE ! vous y étiez presque..."
 end_if

 ' Et ca repart !

 for n%=2 to 4 : active n% : next n%
 gosub initialisation

  if arret%=1 then terminate
  caption 2,"Nouvelle partie" : on_click 2, nouvelle_partie
return

' --------------------------------------------------- INITIALISATION DU JEU ---------------------------------------------------
initialisation:
  if object_exists(10)=1
      2D_TARGET_IS 0
      delete 10
  end_if

  ' on affiche les cases vides des 10 tours + cases des pions noirs et rouges
  picture 10 : left 10,0 : top 10,90 : width 10,600 : height 10,580 : color 10,0,0,0
  2D_TARGET_IS 10
  for y%=1 to 10
      for x%=1 to 6
        2D_PEN_COLOR 20,20,20 : 2D_FILL_COLOR 55,55,55 : 2D_PEN_WIDTH 3 : 2d_circle x%*50 + 30,580 - y%* 50,20 : 2d_circle x%*30+400,580 - y%*50,10
      next x%
  next y%
  tirage$=""

  ' calcul du tirage aléatoire de la combinaison a trouver (tirage$) couleur=chiffre de 1 a 8 ou 0 si pas de pions / exemple : tirage$="123456"
  repeat
      choix:
      choix$=str$(int(RND(9)))
      for n%=1 to len(tirage$)
        if mid$(tirage$,n%,1)=choix$
          if option%(2)=1
              choix$="-"
          end_if
        end_if
      next n%
      if choix$="-" or (choix$="0" and option%(3)=1)
        goto choix
      end_if
      tirage$=tirage$+choix$
  until len(tirage$)=6
return

' --------------------------------------------------- CHOIX DES COULEURS ---------------------------------------------------
selection_couleur:
  2D_TARGET_IS 10 : delete 40
  2D_FILL_COLOR coulr%,coulv%,coulb% : 2D_PEN_WIDTH 3 : 2d_circle selection%*50+30,580-(tour%*50),20
return

' --------------------------------------------------- OPTIONS ---------------------------------------------------
Options:
  show 30 : inactive 3 : inactive 4
return

' --------------------------------------------------- SELECTION DES OPTIONS ---------------------------------------------------
select_option_10:
option%(1)=0
return

select_option_11:
option%(1)=1
return

select_option_20:
option%(2)=0
return

select_option_21:
option%(2)=1
return

select_option_30:
option%(3)=0
return

select_option_31:
option%(3)=1
return

' --------------------------------------------------- REGLES ---------------------------------------------------
Regles:
  show 20 : caption 20,"Régles" : inactive 3 : inactive 4
  texte$=""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      REGLES DU JEU"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                          Le Mastermind est un jeu de société, de réflexion, et de déduction, inventé par Mordecai Meirowitz dans les années 1970."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      PRESENTATION"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                            Il se présente généralement sous la forme d'un plateau perforé de 10 rangées de quatre trous pouvant accueillir des pions de couleurs."+CHR$(10)
  texte$=texte$+"                Le nombre de pions de couleurs différentes est de 8 et les 8 couleurs sont généralement : rouge, jaune, vert, bleu, orange, blanc, violet, fuchsia."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                Il y a également des pions blancs et rouges (ou noirs) utilisés pour donner des indications à chaque étape du jeu."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Il existe de nombreuses variantes suivant le nombre de couleurs, de rangées ou de trous."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          PRINCIPE"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Un joueur commence par placer son choix de pions sans qu'ils soient vus de l'autre joueur"+CHR$(10)
  texte$=texte$+"                                                                          à l'arrière d'un cache qui les masquera à la vue de celui-ci jusqu'à la fin de la manche."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                    Le joueur qui n'a pas sélectionné les pions doit trouver quels sont les quatre pions, c'est-à-dire leurs couleurs et positions."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                              Pour cela, à chaque tour, le joueur doit se servir de pions pour remplir une rangée selon l'idée qu'il se fait des pions dissimulés."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                Une fois les pions placés, l'autre joueur indique :"+CHR$(10)
  texte$=texte$+"                                                                  le nombre de pions de la bonne couleur bien placés en utilisant le même nombre de pions rouges ; "+CHR$(10)
  texte$=texte$+"                                                                                    le nombre de pions de la bonne couleur, mais mal placés, avec les pions blancs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"Il arrive donc surtout en début de partie qu'il ne fasse rien concrètement et qu'il n'ait à dire qu'aucun pion ne correspond, en couleur ou en couleur et position."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                      La tactique du joueur actif consiste à sélectionner en fonction des coups précédents, couleurs et positions,"+CHR$(10)
  texte$=texte$+"  de manière à obtenir le maximum d'informations de la réponse du partenaire puisque le nombre de propositions est limité par le nombre de rangées de trous du jeu."+CHR$(10)
  texte$=texte$+"                                      Dans la plupart des cas, il s'efforce de se rapprocher le plus possible de la solution, compte-tenu des réponses précédentes,"+CHR$(10)
  texte$=texte$+"                                            mais il peut aussi former une combinaison dans le seul but de vérifier une partie des conclusions des coups précédents"+CHR$(10)
  texte$=texte$+"                                                              et de faire en conséquence la proposition la plus propice à la déduction d'une nouvelle information."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                            Le joueur gagne cette manche s'il donne la bonne combinaison de pions sur la dernière rangée ou avant."+CHR$(10)
  texte$=texte$+"                                                                                              Dans tous les cas, c'est à son tour de choisir les pions à découvrir."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          VARIANTES"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                              Selon le niveau des joueurs, un même jeu peut être rendu plus difficile en autorisant plusieurs pions"+CHR$(10)
  texte$=texte$+"                                                                                      de la même couleur, voire en autorisant l'absence d'un pion ou de plusieurs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                        Sources WIKIPEDIA - http://fr.wikipedia.org/wiki/Mastermind"+CHR$(10)
  caption 21,texte$
return

recommence:
arret%=0
retour%=1
return

boutton:
  hide 20 : hide 30 :  active 3 : active 4 : active 5
return

erreur:
 if  error_number=67
    if clicked(2)=1
      caption 2,"Nouvelle partie"
      on_click 2, nouvelle_partie
      arret%=0 : retour%=1
    end_if
    if clicked(5)=1
      arret%=1 : retour%=0
    end_if
 end_if
return

quitter:
  terminate
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 18:33

Il y a un minibug... (je sais on te la fait souvent ...)
Quand la partie est finie => Il faut rechanger l'étiquette du menu "Arreter" => "Jouer"
Un autre minibug est l'affichage des positions erronées quand il y a plusieurs fois les même couleurs
Si j'ai la bonne combinaison qui est Vert-Violet-Rouge-Vert-Vert-Rose
Si je rentre Vert-Violet-Rouge-Rose-Rose-Rose, j'ai 4 pions bien placés et il me manque 2 verts, je devrais donc avoir 4 points rouges, mais en fait, il m'affiche 4 rouges et 2 blancs ...
Il y a donc bien minibug .... Wink et c'est normal car ton test était adapté à la couleur unique mais ne tient pas compte actuellement du nombre de couleur déjà joué (je sais ce n'est pas clair)
On regarde juste dans la chaine 'proposition$' si le pion traité est dans la chaine 'tirage$' hors ça ne suffit pas, il faut regarder combien de fois elle y est ...
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 19:01

pour la ligne 140 çà donne une idée de faire des niveaux en donnant la couleur du pion qui est en bonne position....

On peut aussi tricher moins:
Code:
message "pion(s) de bien place(s) : "+str$(position%)+chr$(10)+"pion(s) de mal plac(e)s : "+str$(existe%)+chr$(10)+"Proposition :          "+proposition$+chr$(10)+"Tirage :                    "+left$(tirage$,2)

A+
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 19:05

salut Jicehel

Je n'ai pas bien compris ton probleme...
mais as tu pris la derniere version que j'ai posté car j'ai modifié la maniere de calculer les pions rouges et blancs.
quant au menu je l'ai aussi corrigé.

En tout cas merci a tous pour l'interet que vous portez a mon programme.

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Jeu de reflexion : MASTERMIND Empty
MessageSujet: re   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 19:31

cheers cheers cheers cheers
Jeu de reflexion : MASTERMIND Captur15
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 19:34

alors là je dis BRAVO ygeronimi

Toutes mes félicitations !!!

cheers cheers cheers cheers cheers cheers cheers cheers cheers cheers cheers cheers
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Jeu de reflexion : MASTERMIND Empty
MessageSujet: re   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 19:37

Oui merci, mais c'est surtout un sacré coup de c...! Laughing Laughing Laughing
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 19:38

Oui, mais voici une démo du bug
La bonne combinaison est: Jaune-Rose-Rose-Rouge-Rose-Rose
Je joue: Jaune-Orange-Orange-Rouge-Rose-Rose
Je devrais avoir 4 points rouges
Le jeu affiche: 4 points rouges et 2 blancs
=>Il y a donc bien un minibug...
Il voit dans la combinaison qu'il y a un rose quand il test la position 2, il met un pion blanc
Il voit quand il test la position 3 qu'il y a un rose ailleurs => pion blanc
Quand il teste la position 5, il voit qu'il y en a un en position 5 => pion rouge
Il teste la position 6, il y a un pion bien placé => pion rouge
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND EmptyDim 5 Aoû 2012 - 20:48

c'est vrai Jicehel, tu as raison !

voici le correctif :


Code:

 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MASTERMIND  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  MiniBug - JUILLET 2012  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


 ' --------------------------------------------------- INITIALISATION VARIABLES ET LABELS ---------------------------------------------------
 dim x%,y%,r%,n%,coul%,coulr%,coulv%,coulb%,couleur%(9,3),selection%,proposition$,tour%,choix$,tirage$,arret%,retour%,texte$,existe%,position%,option%(3),existe_pion%,sel_pro$,sel_tir$
 label Nouvelle_partie,Options,Regles,quitter,recommence,choix,boutton,initialisation,selection_couleur,erreur
 label select_option_10,select_option_11,select_option_20,select_option_21,select_option_30,select_option_31
 data 187,11,11,255,255,0,0,210,0,0,0,200,237,127,16,255,255,255,161,6,132,253,63,146,1,1,1

 tour%=1 : arret%=0 : for n%=1 to 3 : option%(n%)=1 : next n%

 ' --------------------------------------------------- INITIALISATION GRAPHIQUE FENETRES ---------------------------------------------------
 caption 0,"REFLEXION" : border_small 0 : left 0,400 : color 0,0,0,0 : width 0,640 : height 0,730
 alpha 9 : font_color 9,255,255,255 : left 9,105 : top 9,5 : width 9,400 : height 9,50 : FONT_NAME 9,"@FangSong" : FONT_SIZE 9,60 : caption 9,"MASTERMIND"
 form 20 : border_small 20 : color 20,100,100,100 : left 20,200 : top 20,50 : width 20,1005 : height 20,640
 alpha 21 :parent 21,20 : color 21,0,0,0 : font_color 21,255,255,255 : left 21,8 : top 21,8 : width 21,567 : height 21,313 : FONT_SIZE 21,10
 button 22 : caption 22,"Ok" : parent 22,20 : top 22,685 : left 22,870 : width 22,100 : height 22,50 : hide 20 : on_click 22,boutton
 form 30 : border_small 30 : color 30,100,100,100 : left 30,550 : top 30,300 : width 30,295 : height 30,400
 button 31 : caption 31,"Ok" : parent 31,30 : top 31,335 : left 31,200 : hide 30 : on_click 31,boutton
 container_option 50 : parent 50,30 : left 50,5 : top 50,5 : width 50,270 : height 50,100 : color 50,0,0,0 : font_color 50,255,255,255 : caption 50,"CHOIX DE LA COMBINAISON"
 option 52 : parent 52,50 : top 52,30 : left 52,10 : width 52,250 : caption 52,"Choisir la combinaison" : on_click 52,select_option_10 : inactive 52
 option 53 : parent 53,50 : top 53,60 : left 53,10 : width 53,250 : caption 53,"Deviner la combinaison" : mark_on 53 : on_click 53,select_option_11
 container 60 : parent 60,30 : left 60,5 : top 60,115 : width 60,270 : height 60,100 : color 60,0,0,0 : font_color 60,255,255,255 : caption 60,"COULEURS DES PIONS"
 option 62 : parent 62,60 : top 62,30 : left 62,10 : width 62,250 : caption 62,"Plusieurs pions de la même couleur" : on_click 62,select_option_20
 option 63 : parent 63,60 : top 63,60 : left 63,10 : width 63,250 : caption 63,"Un seul pion de la même couleur" : mark_on 63 : on_click 63,select_option_21
 container 70 : parent 70,30 : left 70,5 : top 70,225 : width 70,270 : height 70,100 : color 70,0,0,0 : font_color 70,255,255,255 : caption 70,"ABSENCE DES PIONS"
 option 72 : parent 72,70 : top 72,30 : left 72,10 : width 72,250 : caption 72,"Absence d'un ou de plusieurs pions" : on_click 72,select_option_30
 option 73 : parent 73,70 : top 73,60 : left 73,10 : width 73,250 : caption 73,"Présence de tous les pions" : mark_on 73 : on_click 73,select_option_31

 ' --------------------------------------------------- INITIALISATION MENU ---------------------------------------------------
 main_menu 1
 sub_menu 2 : caption 2,"Nouvelle partie" : parent 2, 1 : on_click 2, nouvelle_partie
 sub_menu 3 : caption 3,"Options" : parent 3, 1  : on_click 3, Options
 sub_menu 4 : caption 4,"Régles du jeu" : parent 4, 1 : on_click 4, Regles
 sub_menu 5 : caption 5,"Quitter" : parent 5, 1 : on_click 5,quitter

 on_error_goto erreur

 end

 ' --------------------------------------------------- LANCEMENT PARTIE ---------------------------------------------------
 Nouvelle_partie:
 caption 2,"Arreter"
 for n%=3 to 4 : inactive n% : next n% : hide 20 : hide 30 :arret%=0 :retour%=0
 gosub initialisation

 ' Nombre de tours a effectuer

 for tour%=1 to 10
    proposition$=""
    for selection%=1 to 6
      if object_exists(40)=1
          2D_TARGET_IS 0
          delete 40
      end_if
      picture 40  : top 40,595-(tour%*50) : width 40,460-(option%(3)*50) : height 40,50 : color 40,120,120,120
      2D_TARGET_IS 40
      restore

      ' Affichage de la barre de choix des 8 ou 9 couleurs (9eme etant la case vide)

      for x%=1 to 9-option%(3)
          read couleur%(x%,1): read couleur%(x%,2) : read couleur%(x%,3)
          2D_FILL_COLOR couleur%(x%,1),couleur%(x%,2),couleur%(x%,3) : 2D_PEN_WIDTH 3 : 2d_circle x%*50-20,25,20
      next x%

      r%=0
     
      repeat
          coulb%=COLOR_PIXEL_BLUE(40,MOUSE_X_LEFT_DOWN(40),25)
          coulv%=COLOR_PIXEL_GREEN(40,MOUSE_X_LEFT_DOWN(40),25)
          coulr%=COLOR_PIXEL_RED(40,MOUSE_X_LEFT_DOWN(40),25)
          coul%=coulr%+coulv%+coulb%
          if coul%<>360 and coul%<>0

            ' la selection du joueur se trouve dans proposition$
            ' code de 1 a 9 selon la couleur (Somme des RVB)  le 9eme correspond au pion absent "0"
            select coul%
                case 3 : proposition$=proposition$+"0"
                case 200 : proposition$=proposition$+"4"
                case 209 : proposition$=proposition$+"1"
                case 210 : proposition$=proposition$+"3"
                case 299 : proposition$=proposition$+"7"
                case 380 : proposition$=proposition$+"5"
                case 462 : proposition$=proposition$+"8"
                case 510 : proposition$=proposition$+"2"
                case 765 : proposition$=proposition$+"6"
                end_select

                ' verifier si la couleur n'est pas deja prise (r%)
                if instr(left$(proposition$,len(proposition$)-1),right$(proposition$,1))=0  and option%(2)=1
                  r%=1
                else
                  if option%(2)=1
                      proposition$=left$(proposition$,len(proposition$)-1)
                      r%=0
                  else
                      r%=1
                  end_if
                end_if
          else
            r%=0
          end_if
      until r%=1 or arret%=1 or retour%=1
      gosub selection_couleur
      if arret%=1 or retour%=1 then exit_for
    next selection%

    ' verifier la position et les couleurs par rapport au tirage
    existe%=0 : position%=0 : sel_pro$=proposition$ : sel_tir$=tirage$
    for n%=1 to 6
      if mid$(sel_pro$,n%,1)=mid$(sel_tir$,n%,1)
          position%=position%+1
          sel_tir$=left$(sel_tir$,n%-1)+"m"+right$(sel_tir$,len(sel_tir$)-n%)
          sel_pro$=left$(sel_pro$,n%-1)+"M"+right$(sel_pro$,len(sel_pro$)-n%)
      end_if
      for x%=1 to 6
          if mid$(sel_tir$,n%,1)=mid$(sel_pro$,x%,1)
            existe%=existe%+1
            sel_tir$=left$(sel_tir$,n%-1)+"d"+right$(sel_tir$,len(sel_tir$)-n%)
            sel_pro$=left$(sel_pro$,x%-1)+"D"+right$(sel_pro$,len(sel_pro$)-x%)
          end_if
      next x%
    next n%

   
    ' afficher les pions rouges et noirs pour savoir si la combinaison est bonne
    if position%<>0
      for n%=1 to position%
          2D_FILL_COLOR 187,11,11 : 2D_PEN_WIDTH 3 : 2d_circle n%*30+400,580-(tour%*50),10
      next n%
    end_if
    if existe%<>0
      for n%=position%+1 to position%+existe%
          2D_FILL_COLOR 255,255,255 : 2D_PEN_WIDTH 3 : 2d_circle n%*30+400,580-(tour%*50),10
      next n%
    end_if
   
    ' pour le debogage on affiche cette ligne - elle donne le resultats des pions noirs et rouges et le tirage
    rem message "pion(s) de bien place(s) : "+str$(position%)+chr$(10)+"pion(s) de mal plac(e)s : "+str$(existe%)+chr$(10)+"Proposition :          "+sel_pro$+chr$(10)+"Tirage :                    "+sel_tir$+chr$(10)+"Proposition :          "+proposition$+chr$(10)+"Tirage :                    "+tirage$

    ' si on a gagné on sort...
    if position%=6 or arret%=1 or retour%=1 then exit_for
 next tour%

 ' on affichage le resultat si gagné ou perdu
 picture 40  : top 40,90 : left 40,100 : width 40,410 : height 40,50 : color 40,120,120,120
 2D_TARGET_IS 40
 for x%=1 to 6
    2D_FILL_COLOR couleur%(val(mid$(tirage$,x%,1)),1),couleur%(val(mid$(tirage$,x%,1)),2),couleur%(val(mid$(tirage$,x%,1)),3)
    2D_PEN_WIDTH 3 : 2d_circle x%*70-40,25,20
 next x%
 if position%=6
    message "BRAVO ! vous avez gagné en "+str$(tour%)+" tours."
    hide 40 : 2D_TARGET_IS 0 : delete 40
 else
    message "DOMMAGE ! vous y étiez presque..."
 end_if

 ' Et ca repart !

 for n%=2 to 4 : active n% : next n%
 gosub initialisation

  if arret%=1 then terminate
  caption 2,"Nouvelle partie" : on_click 2, nouvelle_partie
return

' --------------------------------------------------- INITIALISATION DU JEU ---------------------------------------------------
initialisation:
  if object_exists(10)=1
      2D_TARGET_IS 0
      delete 10
  end_if

  ' on affiche les cases vides des 10 tours + cases des pions noirs et rouges
  picture 10 : left 10,0 : top 10,90 : width 10,600 : height 10,580 : color 10,0,0,0
  2D_TARGET_IS 10
  for y%=1 to 10
      for x%=1 to 6
        2D_PEN_COLOR 20,20,20 : 2D_FILL_COLOR 55,55,55 : 2D_PEN_WIDTH 3 : 2d_circle x%*50 + 30,580 - y%* 50,20 : 2d_circle x%*30+400,580 - y%*50,10
      next x%
  next y%
  tirage$=""

  ' calcul du tirage aléatoire de la combinaison a trouver (tirage$) couleur=chiffre de 1 a 8 ou 0 si pas de pions / exemple : tirage$="123456"
  repeat
      choix:
      choix$=str$(int(RND(9)))
      for n%=1 to len(tirage$)
        if mid$(tirage$,n%,1)=choix$
          if option%(2)=1
              choix$="-"
          end_if
        end_if
      next n%
      if choix$="-" or (choix$="0" and option%(3)=1)
        goto choix
      end_if
      tirage$=tirage$+choix$
  until len(tirage$)=6
return

' --------------------------------------------------- CHOIX DES COULEURS ---------------------------------------------------
selection_couleur:
  2D_TARGET_IS 10 : delete 40
  2D_FILL_COLOR coulr%,coulv%,coulb% : 2D_PEN_WIDTH 3 : 2d_circle selection%*50+30,580-(tour%*50),20
return

' --------------------------------------------------- OPTIONS ---------------------------------------------------
Options:
  show 30 : inactive 3 : inactive 4
return

' --------------------------------------------------- SELECTION DES OPTIONS ---------------------------------------------------
select_option_10:
option%(1)=0
return

select_option_11:
option%(1)=1
return

select_option_20:
option%(2)=0
return

select_option_21:
option%(2)=1
return

select_option_30:
option%(3)=0
return

select_option_31:
option%(3)=1
return

' --------------------------------------------------- REGLES ---------------------------------------------------
Regles:
  show 20 : caption 20,"Régles" : inactive 3 : inactive 4
  texte$=""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      REGLES DU JEU"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                          Le Mastermind est un jeu de société, de réflexion, et de déduction, inventé par Mordecai Meirowitz dans les années 1970."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                      PRESENTATION"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                            Il se présente généralement sous la forme d'un plateau perforé de 10 rangées de quatre trous pouvant accueillir des pions de couleurs."+CHR$(10)
  texte$=texte$+"                Le nombre de pions de couleurs différentes est de 8 et les 8 couleurs sont généralement : rouge, jaune, vert, bleu, orange, blanc, violet, fuchsia."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                Il y a également des pions blancs et rouges (ou noirs) utilisés pour donner des indications à chaque étape du jeu."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Il existe de nombreuses variantes suivant le nombre de couleurs, de rangées ou de trous."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          PRINCIPE"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                          Un joueur commence par placer son choix de pions sans qu'ils soient vus de l'autre joueur"+CHR$(10)
  texte$=texte$+"                                                                          à l'arrière d'un cache qui les masquera à la vue de celui-ci jusqu'à la fin de la manche."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                    Le joueur qui n'a pas sélectionné les pions doit trouver quels sont les quatre pions, c'est-à-dire leurs couleurs et positions."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                              Pour cela, à chaque tour, le joueur doit se servir de pions pour remplir une rangée selon l'idée qu'il se fait des pions dissimulés."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                Une fois les pions placés, l'autre joueur indique :"+CHR$(10)
  texte$=texte$+"                                                                  le nombre de pions de la bonne couleur bien placés en utilisant le même nombre de pions rouges ; "+CHR$(10)
  texte$=texte$+"                                                                                    le nombre de pions de la bonne couleur, mais mal placés, avec les pions blancs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"Il arrive donc surtout en début de partie qu'il ne fasse rien concrètement et qu'il n'ait à dire qu'aucun pion ne correspond, en couleur ou en couleur et position."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                      La tactique du joueur actif consiste à sélectionner en fonction des coups précédents, couleurs et positions,"+CHR$(10)
  texte$=texte$+"  de manière à obtenir le maximum d'informations de la réponse du partenaire puisque le nombre de propositions est limité par le nombre de rangées de trous du jeu."+CHR$(10)
  texte$=texte$+"                                      Dans la plupart des cas, il s'efforce de se rapprocher le plus possible de la solution, compte-tenu des réponses précédentes,"+CHR$(10)
  texte$=texte$+"                                            mais il peut aussi former une combinaison dans le seul but de vérifier une partie des conclusions des coups précédents"+CHR$(10)
  texte$=texte$+"                                                              et de faire en conséquence la proposition la plus propice à la déduction d'une nouvelle information."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                            Le joueur gagne cette manche s'il donne la bonne combinaison de pions sur la dernière rangée ou avant."+CHR$(10)
  texte$=texte$+"                                                                                              Dans tous les cas, c'est à son tour de choisir les pions à découvrir."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                                                                          VARIANTES"+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                              Selon le niveau des joueurs, un même jeu peut être rendu plus difficile en autorisant plusieurs pions"+CHR$(10)
  texte$=texte$+"                                                                                      de la même couleur, voire en autorisant l'absence d'un pion ou de plusieurs."+CHR$(10)
  texte$=texte$+""+CHR$(10)
  texte$=texte$+"                                                                                                        Sources WIKIPEDIA - http://fr.wikipedia.org/wiki/Mastermind"+CHR$(10)
  caption 21,texte$
return

recommence:
arret%=0
retour%=1
return

boutton:
  hide 20 : hide 30 :  active 3 : active 4 : active 5
return

erreur:
 if  error_number=67
    if clicked(2)=1
      caption 2,"Nouvelle partie"
      on_click 2, nouvelle_partie
      arret%=0 : retour%=1
    end_if
    if clicked(5)=1
      arret%=1 : retour%=0
    end_if
 end_if
return

quitter:
  terminate
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





Jeu de reflexion : MASTERMIND Empty
MessageSujet: Re: Jeu de reflexion : MASTERMIND   Jeu de reflexion : MASTERMIND Empty

Revenir en haut Aller en bas
 
Jeu de reflexion : MASTERMIND
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Récapitulatif ludothèque panoramic jjn4
» MasterMind Alphabétique Français
» MasterMind Alphabétique International
» La musique adoucit les moeurs
» Reflexion sur la récursivité

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: