FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» StratégoV8 et V9
par Minibug Aujourd'hui à 1:10

» Rotation d'une image d'un angle quelconque
par JL35 Hier à 23:02

» GRID_LOAD
par Jean Claude Hier à 21:04

» HVIEWER
par Yannick Hier à 20:31

» KGF_dll - nouvelles versions
par Klaus Mar 16 Jan 2018 - 21:28

» Déformation d'image en trapèze
par mindstorm Mar 16 Jan 2018 - 21:06

» Mah-Jong américain
par Jean Claude Lun 15 Jan 2018 - 19:37

» Problème avec Deepl
par Klaus Lun 15 Jan 2018 - 0:34

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier

Partagez | 
 

 Le jeu de 5000++ (version préparatoire)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
jjn4

avatar

Nombre de messages : 1656
Date d'inscription : 13/09/2009

MessageSujet: Le jeu de 5000++ (version préparatoire)   Lun 2 Juin 2014 - 19:17

Et voici un jeu que je prépare depuis longtemps.
J'avais l'intention de vous le donner au complet,
mais c'est assez complexe et je n'aurai pas
le temps de le finir avant les vacances
(les grosses chaleurs ne vont pas tarder...).

Alors je vous livre la version préparatoire.
Ce n'est pas encore un jeu complet,
mais c'est plus qu'une simple table d'exercices,
puisque l'ordinateur contrôle toutes vos actions.
Simplement, pour cette première version,
il vous faudra jouer alternativement pour les 4 joueurs,
(ou alors avec 3 membres de votre famille).

J'y ai beaucoup joué quand j'étais jeune
(et maintenant à nouveau que j'ai cette version)
et vous pouvez me croire qu'il est joliment addictif !

C'est à la fois un jeu de hasard et de stratégie.
Lisez la règle de fonctionnement (Aide).
Vous savez que dans mes programmes,
c'est toujours très complet.

Code:
rem ' 5000++ - Table d'Exercices
   dim a , b , c , i , j , k , v(5) : rem Variables provisoires numériques
   dim a$ , b$ , r$ , v$(6) : rem Variables provisoires alphanumériques
   dim ar : rem Ancienne réserve
   dim cs , cs2 : rem Présence d`une Combinaison de Six dés et son double
   dim dc : rem Dé Cliqué
   dim dp : rem Dessin des points
   dim dr : rem Nombre de Dés en Réserve
   dim hx(6) , hy(6) : rem Hasard de la positiom en X et en Y de chaque dé
   dim id : rem Indicateur rouge de Dé prêt à être déplacé
   dim ij : rem Indicateur de début de Jeu pour chaque joueur
   dim ir : rem Indicateur de dé(s) nouvellement mis en réserve (avec son nombre)
   dim ir1$(12) , ir2$(12) : rem Inscriptions de Récompense 1 et 2
   dim it : rem Indicateur de résultat Trouvé
   dim it1 , it12 : rem Indicateur de Triplet de 1 et son double
   dim it5 , it52 : rem Indicateur de Triplet de 5 et son double
   dim nu , nu2 : rem Nombre de chiffres 1 (un) isolés et son double
   dim n5 , n52 : rem Nombre de chiffres 5 isolés et son double
   dim nj : rem Nombre de Joueurs biologiques
   dim nj$(4) : rem Noms des joueurs
   dim nl : rem Nombre de Lancers
   dim nr : rem Nouvelle Réserve
   dim nt(6) : rem Numéros Tirés au hasard par dé
   dim pt : rem Points présents sur le tapis
   dim rr$ : rem Reste du calcul après le Reste en 1 et 5
   dim rt : rem Réserve Totale
   dim tb : rem Total des points trouvés sur le tapis (en Bis)
   dim tj : rem Tour de chacun des Joueurs
   dim tm(4) : rem Total de Matches gagnés
   dim ts : rem Triplet Simple
   dim tt : rem ToTal des points trouvés sur le tapis
   tj=1
   rem Noms des routines -------------------------------
   label aide : rem Règles du jeu
   label arret : rem Effet du clic sur le bouton Arrêter
   label bis : rem Nouveau tour de jeu
   label boutons : rem Gestion des boutons de jeu
   label calcul : rem Calcul du nombre de points
   label carre : rem Dessin du pourtour du dé
   label cases : rem Dessin des points sur les dés
   label choix : rem Choix des chiffres sur les dés
   label cinq : rem Dessin du 5
   label close : rem Fermeture du tableau d`aide par la croix rouge
   label coupe : rem Fonctionnement de l`attribution des coupes
   label des : rem Dessin des six dés au départ
   label deux : rem Dessin du 2
   label exemple : rem Affichage de l`exemple donné
   label la : rem Mettre le dé à l`endroit choisi
   label lancer : rem Lancer les dés
   label marche : rem Affichage de comment marche le programme
   label noir : rem remise en noir des points des dés
   label plus : rem Calcul du total en plus
   label points : rem Affichage de la valeur des combinaisons
   label quatre : rem Dessin du 4
   label quit : rem Quitter le jeu
   label regles : rem Affichage de la règle du jeu
   label reserve : rem Mettre un dé en réserve
   label six : rem Dessin du 6
   label suivant : rem Passer au joueur suivant
   label tapis : rem Calcul du nombre de points présents sur le tapis
   label total : rem Affichage du total dans la liste
   label trois : rem Dessin du 3
   label un : rem Dessin du 1
   label vite : rem Régulation de la vitesse du jeu
   label zquit : rem Fin du jeu

rem form0
   width 0,1250
   height 0,736
   caption 0," Le jeu de 5000++"

alpha 40 : rem Fond vert du tapis
   width 40,811
   height 40,688
   color 40,0,130,0
  
alpha 50 : rem Tapis blanc
   left 50,10
   top 50,10
   width 50,668
   height 50,668
   color 50,255,255,255
   on_click 50,la
  
alpha 60 : rem Réserve blanche
   left 60,688
   top 60,8
   width 60,113
   height 60,673
   color 60,255,255,255

alpha 70 : rem Indication Tapis
   left 70,70
   top 70,280
   color 70,255,255,255
   font_size 70,18
   caption 70,"Tapis"

alpha 75 : rem Indication Réserve
   left 75,710
   top 75,150
   color 75,255,255,255
   font_size 75,16
   caption 75,"Réserve"

rem Dessin des six dés (100 à 150 à pas de 10)
   for i=1 to 6
      picture 100+(i-1)*10
         left 100+(i-1)*10,111*(i-1)+10
         top 100+(i-1)*10,10
         width 100+(i-1)*10,112
         height 100+(i-1)*10,112
         on_click 100+(i-1)*10,reserve
   next i

rem Affichage des noms
   for i=1 to 4
      alpha (i-1)*2+180 : rem (180 à 186 pas de 2)
         left (i-1)*2+180,758+i*62
         top (i-1)*2+180,4
         font_bold (i-1)*2+180
         font_size (i-1)*2+180,12
   next i
   nj$(1)="Vous"
   nj$(2)="Alex"
   nj$(3)="Éric"
   nj$(4)="Lola"
   for i=1 to 4
      caption 180+(i-1)*2,nj$(i)
   next i
   font_color 180,255,0,0

rem Dessin des alphas du décompte de points du haut
   for i=1 to 4 : rem Fonds
      alpha (i-1)*2+200 : rem (200 à 206 à pas de 2)
         left (i-1)*2+200,753+i*62
         top (i-1)*2+200,25
         width (i-1)*2+200,60
         height (i-1)*2+200,25
         color (i-1)*2+200,0,255,255
   next i
  
   for i=1 to 4 : rem Chiffres
      alpha (i-1)*2+210 : rem (210 à 216 à pas de 2)
         left (i-1)*2+210,757+i*62
         top (i-1)*2+210,27
         font_bold (i-1)*2+210
         font_size (i-1)*2+210,12
         color (i-1)*2+210,0,255,255
         font_color (i-1)*2+210,0,0,255
         caption (i-1)*2+210,"00000"
   next i

rem Dessin des cumuls de points
   for i=1 to 4
      list (i-1)*2+220 : rem (220 à 226 à pas de 2)
         left (i-1)*2+220,753+i*62
         top (i-1)*2+220,53
         width (i-1)*2+220,60
         height (i-1)*2+220,511
         font_size (i-1)*2+220,12
   next i

rem Dessin des décomptes finaux
   for i=1 to 4 : rem Fonds
      alpha (i-1)*2+230 : rem (230 à 236 à pas de 2)
         left (i-1)*2+230,753+i*62
         top (i-1)*2+230,566
         width (i-1)*2+230,60
         height (i-1)*2+230,25
         color (i-1)*2+230,0,255,0
   next i
  
   for i=1 to 4 : rem Chiffres
      alpha (i-1)*2+240 : rem (240 à 246 à pas de 2)
         left (i-1)*2+240,755+i*62
         top (i-1)*2+240,568
         font_size (i-1)*2+240,12
         color (i-1)*2+240,0,255,0
         font_color (i-1)*2+240,0,0,255
         caption (i-1)*2+240,"000000"
   next i

rem Dessin des zones d`indications
   alpha 250 : rem Fond
      left 250,1063
      top 250,4
      width 250,160
      height 250,82
      color 250,255,255,0
      
   alpha 252 : rem Affichage des commentaires sur le Tapis
      left 252,1064
      top 252,6
      font_size 252,12
      color 252,255,255,0
      font_color 252,0,130,0
      
   alpha 254 : rem Affichage des commentaires sur le Stock
      left 254,1064
      top 254,26
      font_size 254,12
      color 254,255,255,0
      font_color 254,255,0,0
      
   alpha 256 : rem Affichage des commentaires sur le Plus
      left 256,1064
      top 256,46
      font_size 256,12
      color 256,255,255,0
      font_color 256,255,0,0
      
   alpha 258 : rem Affichage du numéro de Lancer
      left 258,1064
      top 258,66
      font_size 258,12
      color 258,255,255,0
      font_color 258,255,0,0
      
rem Boutons de jeu
   for i=1 to 7
      button (i-1)*2+260 : rem (260 à 272 à pas de 2)
         left (i-1)*2+260,1063
         top (i-1)*2+260,(i-1)*86+88
         width (i-1)*2+260,160
         height (i-1)*2+260,86
         font_bold (i-1)*2+260
         font_size (i-1)*2+260,16
   next i
   caption 260,"Jouer"
   caption 262,"Lancer"
   caption 264,"Arrêter"
   caption 266,"Suivant"
   caption 268,"Rapide"
   caption 270,"Aide"
   caption 272,"Quitter"
   on_click 260,des
   on_click 262,lancer
   on_click 264,arret
   on_click 266,suivant
   on_click 268,vite
   on_click 270,aide
   on_click 272,quit
   inactive 262
   inactive 264
   inactive 266

rem Inscription des résultats des matches
   for i=1 to 4 : rem Fonds
      alpha (i-1)*2+280 : rem (280 à 286 à pas de 2)
         left (i-1)*2+280,753+i*62
         top (i-1)*2+280,593
         width (i-1)*2+280,60
         height (i-1)*2+280,25
         color (i-1)*2+280,255,190,255
   next i
  
   for i=1 to 4 : rem Chiffres
      alpha (i-1)*2+290 : rem (290 à 296 à pas de 2)
         left (i-1)*2+290,758+i*62
         top (i-1)*2+290,595
         font_bold (i-1)*2+290
         font_size (i-1)*2+290,12
         color (i-1)*2+290,255,190,255
         caption (i-1)*2+290,"0"
   next i
  
form 300 : rem Tableau des boutons d`aide
   hide 300
   left 300,694
   top 300,294
   width 300,320
   height 300,250
   caption 300,"Aides possibles"
   on_close 300,close
  
button 310
   parent 310,300
   left 310,15
   top 310,10
   width 310,135
   height 310,90
   font_bold 310
   font_size 310,16
   caption 310,"Points"
   on_click 310,points
  
button 320
   parent 320,300
   left 320,160
   top 320,10
   width 320,135
   height 320,90
   font_bold 320
   font_size 320,16
   caption 320,"Règles"
   on_click 320,regles
  
button 330
   parent 330,300
   left 330,15
   top 330,110
   width 330,135
   height 330,90
   font_bold 330
   font_size 330,16
   caption 330,"Exemple"
   on_click 330,exemple
  
button 340
   parent 340,300
   left 340,160
   top 340,110
   width 340,135
   height 340,90
   font_bold 340
   font_size 340,16
   caption 340,"Marche"
   on_click 340,marche
      
rem Coupes de récompense
   for i=1 to 4 : rem Fonds
      alpha 350+(i-1)*2
         left 350+(i-1)*2,753+i*62
         top 350+(i-1)*2,620
         width 350+(i-1)*2,60
         height 350+(i-1)*2,65
         color 350+(i-1)*2,255,255,255
   next i
  
   for i=1 to 4 : rem Coupes
      alpha 360+(i-1)*2
         left 360+(i-1)*2,760+i*62
         top 360+(i-1)*2,620
         font_size 360+(i-1)*2,34
         font_name 360+(i-1)*2,"Webdings"
         color 360+(i-1)*2,255,255,255
         caption 360+(i-1)*2,chr$(37)
         font_color 360+(i-1)*2,139,50,186
         font_color 360+(i-1)*2,200,40,60
         font_color 360+(i-1)*2,50,120,60
         font_color 360+(i-1)*2,220,200,216
         font_color 360+(i-1)*2,206,190,93
         font_color 360+(i-1)*2,200,200,225
         font_color 360+(i-1)*2,114,110,50
         font_color 360+(i-1)*2,22,22,22
         font_color 360+(i-1)*2,250,180,250
         font_color 360+(i-1)*2,215,200,200
         font_color 360+(i-1)*2,100,60,40
         font_color 360+(i-1)*2,255,225,130
         font_color 360+(i-1)*2,255,255,255
   next i
   ir1$(1)="  Coupette"
   ir1$(2)=" Coupe en"
   ir1$(3)=" Coupe en"
   ir1$(4)=" Coupe en"
   ir1$(5)=" Coupe en"
   ir1$(6)="  Coupe de"
   ir1$(7)="    Coupe"
   ir1$(8)="    Super"
   ir1$(9)=" Coupe en"
   ir1$(10)="    Coupe"
   ir1$(11)="Coupe avec"
   ir1$(12)="   Et voici"
   ir2$(1)="   en rafia"
   ir2$(2)="  Chocolat"
   ir2$(3)="Carton-pâte"
   ir2$(4)="  plastique"
   ir2$(5)="Obsidienne"
   ir2$(6)="    bronze"
   ir2$(7)="   d'argent"
   ir2$(8)=" coupe d'or"
   ir2$(9)="  platine"
   ir2$(10)="d'émeraudes"
   ir2$(11)="  des rubis"
   ir2$(12)="   le Graal"
   for i=1 to 4 : rem 1° inscriptions
      alpha 370+(i-1)*2
         left 370+(i-1)*2,754+i*62
         top 370+(i-1)*2,659
         color 370+(i-1)*2,255,255,255
         caption 370+(i-1)*2,string$(len(ir1$(i))," ")
   next i

   for i=1 to 4 : rem 2° inscriptions
      alpha 380+(i-1)*2
         left 380+(i-1)*2,754+i*62
         top 380+(i-1)*2,672
         color 380+(i-1)*2,255,255,255
         caption 380+(i-1)*2,string$(len(ir2$(i))," ")
   next i
  
end : rem ' Début des routines ================================================

aide: : rem Règles du jeu
   show 300
   inactive 0
   application_title " Règles du jeu de 5000++"
return

arret: : rem Effet du clic sur le bouton Arrêter
   gosub total
   inactive 264
   for i=100 to 150 step 10
      off_click i
   next i
return

bis: : rem Nouveau tour de jeu
   ar=0 : dr=0 : id=0 : ij=0 : ir=0 : it12=0 : it52=0
   nl=0 : nr=0 : nu2=0 : n52=0 : pt=0 : rt=0 : tb=0 : cs2=0
   active 262
return

boutons: : rem Gestion des boutons de jeu
   gosub tapis
   gosub plus
   active 264
   if tb>0
      inactive 264
   end_if
   if nl<3 and rr$=""
      active 262
   end_if
   if cs2=1 and ir<6
      inactive 262
      inactive 264
   end_if
   if it12=1 and it52=1 and nl=1
      if tt/500=int(tt/500) and tt>0
         active 262
      else
         inactive 262
      end_if
   end_if
   if (it12=1 and it52=0)
      if nu2=3
         if (nu=3 and n5=0) or (nu=3 and n5=1) or (nu=0 and n5=1) or (nu=0 and n5=2) or (nu=3 and n5=2) or (nu=0 and n5=0)
            active 262
         else
            inactive 262
         end_if
      end_if
      if nu2=4
         if nu<>2
            active 262
         else
            inactive 262
         end_if
      end_if
   end_if
   if (it12=0 and it52=1)
      if n52=3
         if (n5=3 and nu=0) or (n5=3 and nu=1) or (n5=0 and nu=1) or (n5=0 and nu=2) or (n5=3 and nu=2) or (n5=0 and nu=0)
            active 262
         else
            inactive 262
         end_if
      end_if
      if n52=4
         if n5<>2
            active 262
         else
            inactive 262
         end_if
      end_if
   end_if
   if (nl=3) and ((dr+ir)=6) and (rr$="")
      active 262
   end_if
   if nl=3 and tb=0 and ((dr+ir)<6)
      inactive 262
   end_if
   if rr$<>""
      inactive 262
      inactive 264
   end_if
   if tb>0
      inactive 264
   end_if
   if ir=0
      inactive 262
   end_if
return

calcul: : rem Calcul du nombre de points
   rem ' Mise en ordre et en forme numérique du nombre de départ
   tt=0 : it=0 : cs=0
   for i=1 to 6
      v$(i)=""
   next i
   b$=""
   c=len(str$(a))
   if c>6
      c=val(left$(str$(a),6))
      c=6
   end_if
   for i=1 to c
      v$(i)=mid$(str$(a),i,1)
   next i
   if c>1
      for i=1 to c-1
         for j=1 to c-1
            if asc(v$(j))>asc(v$(j+1))
               b$=v$(j)
               v$(j)=v$(j+1)
               v$(j+1)=b$
            end_if
         next j
      next i
   end_if
   a=0
   if c>1
      for i=1 to c
         a=a+val(v$(i))*power(10,c-i)
      next i
   else
      a=val(v$(1))
   end_if
   if c=6
      for i=1 to 5
         v(i)=0
      next i
      for i=1 to 2
         v(1)=v(1)+val(v$(i))*power(10,2-i)
         v(2)=v(2)+val(v$(i+2))*power(10,2-i)
         v(3)=v(3)+val(v$(i+4))*power(10,2-i)
      next i
      for i=1 to 3
         v(4)=v(4)+val(v$(i))*power(10,3-i)
         v(5)=v(5)+val(v$(i+3))*power(10,3-i)
      next i
   end_if
   rem ' Détection des Suites
   if a=123456
      tt=1500
      it=1
      cs=1
   end_if
   rem ' Détection des Sixtuplets
   if it=0
      b=0
      if a/111111=int(a/111111)
         b=a/111111
      end_if
      if b>0
         if b=1
            tt=2000
         else
            tt=1500
         end_if
         it=1
         cs=1
      end_if
   end_if
   rem ' Détection des triples-doublets
   if it=0 and c=6
      if v(1)/11=int(v(1)/11) and v(2)/11=int(v(2)/11) and v(3)/11=int(v(3)/11)
         tt=1500
         it=1
         cs=1
      end_if
   end_if
   rem ' Détection des doubles Triplets
   it1=0 : it5=0
   if it=0 and c=6
      if v(4)/111=int(v(4)/111) and v(5)/111=int(v(5)/111)
         it=1
         if v(4)/111=1
            tt=((v(5)/111)*100)+1000
         else
            tt=((v(4)/111)+(v(5)/111))*100
         end_if
         if v(4)/111=1 or v(5)/111=1
            it1=1
            nu=3
         end_if
         if v(4)/111=5 or v(5)/111=5
            it5=1
            n5=3
         end_if
      end_if
   end_if
   rem ' Détection des Triplets simples
   if it=0
      j=0 : b=0 : nu=0 : n5=0 : k=0
      if c>2
         for i=1 to c-2
            if (val(mid$(str$(a),i,3))/111)=(int(val(mid$(str$(a),i,3))/111))
               b=val(mid$(str$(a),i,3))/111
               ts=b
               j=i
               exit_for
            end_if
         next i
      end_if
      r$=""
      for i=1 to c
         if j>0
            if i<>j and i<>(j+1) and i<>(j+2)
               r$=r$+mid$(str$(a),i,1)
            end_if
         else
            r$=r$+mid$(str$(a),i,1)
         end_if
      next i
      if b>0
         if b=1
            tt=1000
            it1=1
            nu=3
         else
            tt=b*100
         end_if
         if b=5
            it5=1
            n5=3
         end_if
         k=1
      end_if
   end_if
   rem ' Détection de 1 ou de 5 et autres
   rr$=""
   if it=0
      b=0
      if r$<>""
         for i=1 to len(r$)
            if val(mid$(r$,i,1))=1 or val(mid$(r$,i,1))=5
               if val(mid$(r$,i,1))=1
                  b=b+100
                  nu=nu+1
               end_if
               if val(mid$(r$,i,1))=5
                  b=b+50
                  n5=n5+1
               end_if
               it=1
            else
               rr$=rr$+mid$(r$,i,1)
            end_if
         next i
      end_if
      if b>0
         tt=tt+b
      end_if
   end_if
   if k=1
      it=1
   end_if
return

carre: : rem Dessin du pourtour du dé
   2d_poly_from 100,2
   2d_poly_to 104,3
   2d_poly_to 106,4
   2d_poly_to 107,5
   2d_poly_to 108,6
   2d_poly_to 109,8
   2d_poly_to 110,12
   2d_poly_to 110,101
   2d_poly_to 109,105
   2d_poly_to 108,107
   2d_poly_to 107,108
   2d_poly_to 106,109
   2d_poly_to 104,110
   2d_poly_to 100,111
   2d_poly_to 12,111
   2d_poly_to 8,110
   2d_poly_to 6,109
   2d_poly_to 5,108
   2d_poly_to 4,107
   2d_poly_to 3,105
   2d_poly_to 2,101
   2d_poly_to 2,12
   2d_poly_to 3,8
   2d_poly_to 4,6
   2d_poly_to 5,5
   2d_poly_to 6,4
   2d_poly_to 8,3
   2d_poly_to 12,2
   2d_poly_to 100,2
return
  
cases: : rem Dessin des points sur les dés
   select dp
      case 1 : gosub un
      case 2 : gosub deux
      case 3 : gosub trois
      case 4 : gosub quatre
      case 5 : gosub cinq
      case 6 : gosub six
   end_select
return

choix: : rem Choix des chiffres sur les dés
   2d_target_is 100+(i-1)*10
   color 100+(i-1)*10,255,255,255
   2d_fill_color 0,0,0
   gosub carre
   gosub cases
return

cinq: : rem Dessin du 5
   2d_circle 27,27,8
   2d_circle 85,27,8
   2d_circle 27,85,8
   2d_circle 85,85,8
   2d_circle 55,55,8
return

close: : rem Fermeture du tableau d`aide par la croix rouge
   hide 300
   active 0
   to_foreground 0
return

coupe: : rem Fonctionnement de l`attribution des coupes
   if tm(tj)<12
      caption 370+(tj-1)*2,ir1$(tm(tj))
      caption 380+(tj-1)*2,ir2$(tm(tj))
      select tm(tj)
         case 1 : font_color 360+(tj-1)*2,255,225,130
         case 2 : font_color 360+(tj-1)*2,100,60,40
         case 3 : font_color 360+(tj-1)*2,215,200,200
         case 4 : font_color 360+(tj-1)*2,250,180,250
         case 5 : font_color 360+(tj-1)*2,22,22,22
         case 6 : font_color 360+(tj-1)*2,114,110,50
         case 7 : font_color 360+(tj-1)*2,200,200,225
         case 8 : font_color 360+(tj-1)*2,206,190,93
         case 9 : font_color 360+(tj-1)*2,220,200,216
         case 10 : font_color 360+(tj-1)*2,50,120,60
         case 11 : font_color 360+(tj-1)*2,200,40,60
      end_select
   else
      caption 370+(tj-1)*2,ir1$(12)
      caption 380+(tj-1)*2,ir2$(12)
      font_color 360+(tj-1)*2,139,50,186
   end_if
return

des: : rem Dessin des six dés au départ
   for i=1 to 6
      left 100+(i-1)*10,111*(i-1)+10
      top 100+(i-1)*10,10
      dp=i
      gosub choix
   next i
   for i=1 to 6
      off_click 100+(i-1)*10
   next i
   active 262
   inactive 260
return

deux: : rem Dessin du 2
   2d_circle 37,37,8
   2d_circle 75,75,8
return

exemple: : rem Affichage de l`exemple donné
   hide 300
   active 0
   a$="Exemple :"+chr$(13)
   a$=a$+"-------"+chr$(13)
   a$=a$+"Soient 3 joueurs : Alex, Éric et Lola s'asseyant dans cet ordre"+chr$(13)
   a$=a$+"- Alex: 122534 = 100 + 12233 = 100 + 6662 = 600 : Total 800 : Décompte 800"+chr$(13)
   a$=a$+"- Éric: 316435 = 100 + 11356 = 200 + 111 = 1000 : arrête là : Total 1300 : Décompte 1300"+chr$(13)
   a$=a$+"- Lola: 153346 = 100 + 13255 = 100 + 1246 = 100 : Total 300 : insuffisant : Décompte 0"+chr$(13)
   a$=a$+"- Alex: 122246 = 300 + 11 = 200 + 662235 = 50 + 11455 = 300 : Total 850 : Décompte 1650"+chr$(13)
   a$=a$+"- Éric: 221634 = 100 + 66442 = rien : Total 0 : Décompte 1300"+chr$(13)
   a$=a$+"- Lola: 111214 = 1100 : arrête là : Total 1100 : Décompte 1100"+chr$(13)
   a$=a$+"- Alex: 661132 = 200 +1222 = 300 + 665551 = 600 : arrête là : Total 1100 : Décompte 2750"+chr$(13)
   a$=a$+"- Éric: 445126 = 100 + 43651 = 100 + 1556 = 200 : Total 400 : Décompte 1700"+chr$(13)
   a$=a$+"- Lola: 426635 = 50 + 12345 = 100 + 2436 = rien : Total 0 : Décompte 1100"+chr$(13)
   a$=a$+"- Alex: 662233 = 1500 + 666452 = 650 : arrête là : Total 2150 : Décompte 4900"+chr$(13)
   a$=a$+"- Éric: 411132 = 1000 + 155 = 200 + 555312 = 600 : arrête là : Total 1800 : Décompte 3500"+chr$(13)
   a$=a$+"- Lola: 111666 = 1600 + 125443 = 100 + 51236 = 150 : arrête là : Total 1850 : Décompte 2950"+chr$(13)
   a$=a$+"- Alex: 123456 = 1500 + 111455 = 1100 + 3 = rien : Total 0 : Décompte 4900"+chr$(13)
   a$=a$+"- Éric: 424651 = 100 + 333415 = 450 : arrête là : Total 550 : Décompte 4050"+chr$(13)
   a$=a$+"- Lola: 433225 = 50 + 36412 = 100 + 3331 = 400 + 624362 = rien : Total 0 : Décompte 2950"+chr$(13)
   a$=a$+"- Alex: 135436 = 50 + 34352 = 50 : arrête là : Total : 100 : Décompte 5000 : Gagné"+chr$(13)
   message a$
return

la: : rem Mettre le dé à l`endroit choisi
   if id=1
      a=mouse_x_position(50)
      b=mouse_y_position(50)
      c=0
      for i=1 to 6
         if ((i*10+90)<>dc) and (left(i*10+90)>(a-115) and left(i*10+90)<(a+115) and top(i*10+90)>(b-115) and top(i*10+90)<(b+115))
            c=1
         end_if
      next i
      if a>10 and a<555 and b>10 and b<555 and c=0
         left dc,mouse_x_position(50)
         top dc,mouse_y_position(50)
         2d_fill_color 0,0,0
         gosub cases
         ir=ir-1
         id=0
         gosub boutons
      else
         beep
      end_if
   end_if
return

lancer: : rem Lancer les dés
   inactive 262
   hide 70
   hide 75
   dr=dr+ir
   ar=ar+nr
   cs=0
   it12=0
   it52=0
   if dr=6
      gosub des
      nl=0
      ir=0
      ij=0
      nr=0
      cs2=0
      dr=0
   end_if
   for i=1 to 6
      on_click 100+(i-1)*10,reserve
   next i
   if nl<3 and (ir>0 or ij=0)
      for i=1 to 2
         for j=0 to 2
            hx(j*2+i)=int(rnd(222))+11+(i-1)*334
            hy(j*2+i)=int(rnd(110))+13+j*222
         next j
      next i
      for i=10 to 500 step 49
         for j=1 to 6
            a=(111*(j-1)+10)
            if left(100+(j-1)*10)<685
               left 100+(j-1)*10,a+(i/2)*sgn(334-a)
               top 100+(j-1)*10,10+(i/j)
            end_if
         next j
         display
      next i
      for i=1 to 6
         if left(100+(i-1)*10)<685
            left 100+(i-1)*10,hx(i)
            top 100+(i-1)*10,hy(i)
         end_if
      next i
      for i=1 to 6
         if left(100+(i-1)*10)<685
            nt(i)=int(rnd(6))+1
         end_if
      next i
      for i=1 to 6
         if left(100+(i-1)*10)<685
            if odd(tj+nl)=1
               nt(i)=7-nt(i)
            end_if
            dp=nt(i)
            gosub choix
         end_if
      next i
      nl=nl+1
      gosub tapis
      inactive 262
      nu2=nu
      n52=n5
      pt=tt
      caption 252,"Tapis : "+str$(pt)+" Points"
   end_if
   ir=0
   caption 254,"Stock : "+str$(ar)+" Points"
   caption 256,"Plus  :"
   caption 258,"         "+str$(nl)+"° lancer"
   if pt=0
      active 266
      for i=100 to 150 step 10
         off_click i
      next i
      caption 208+tj*2,"0000"
      caption 256," PERDU : 0 point"
   end_if
   ij=1
   inactive 264
   if it1=1
      it12=1
   end_if
   if it5=1
      it52=1
   end_if
   if cs=1
      cs2=1
   end_if
   for i=100 to 150 step 10
      on_click i,reserve
   next i
return

marche: : rem Affichage de comment marche le programme
   hide 300
   active 0
   a$="Fonctionnement du programme :"+chr$(13)
   a$=a$+"----------------------------"+chr$(13)
   a$=a$+"   Le fonctionnement du programme est essentiellement intuitif."+chr$(13)
   a$=a$+"Le jeu comporte cependant certaines facultés intéressantes à découvrir :"+chr$(13)
   a$=a$+"1) Mise en réserve des dés :"+chr$(13)
   a$=a$+"   Les dés lancés sur le tapis peuvent être mis en réserve en cliquant dessus."+chr$(13)
   a$=a$+"2) Remise d'un dé sur le tapis :"+chr$(13)
   a$=a$+"   Si, après avoir mis un dé en réserve, vous changez d'avis, vous pouvez"+chr$(13)
   a$=a$+"   le remettre sur le tapis. Pour cela :"+chr$(13)
   a$=a$+"   - Cliquez dessus, en commençant par le dernier (les points deviennent rouges),"+chr$(13)
   a$=a$+"   - Cliquez sur le tapis à l'endroit où vous voulez le placer."+chr$(13)
   a$=a$+"3) Mise en ordre des dés sur le tapis :"+chr$(13)
   a$=a$+"   En utilisant la zone de réserve à l'aide des formules 1 et 2 ci-dessus,"+chr$(13)
   a$=a$+"   vous pouvez ranger les dés à votre convenance sur le tapis, de telle"+chr$(13)
   a$=a$+"   sorte que la vision synoptique que vous en obtenez soit meilleure."+chr$(13)
   a$=a$+"4) Signification des totaux indiqués :"+chr$(13)
   a$=a$+"   - Tapis : c'est le décompte du nombre de points disponibles sur le tapis."+chr$(13)
   a$=a$+"   - Stock : c'est le nombre de points que vous avez mis en reserve"+chr$(13)
   a$=a$+"     au(x) lancer(s) précédent(s)."+chr$(13)
   a$=a$+"   - Plus : c'est le nombre de points nouvellement mis en réserve."+chr$(13)
   a$=a$+"   - Le total bleu : c'est la somme de Stock et de Plus."+chr$(13)
   a$=a$+"   - Le total vert : c'est le décompte total correspondant au cumul des colonnes."+chr$(13)
   a$=a$+"   - Le total rose : c'est le nombre de matches gagnés par chacun des joueurs."+chr$(13)
   a$=a$+"   - Les zones blanches affichent les récompenses qui sont décernées."+chr$(13)
   a$=a$+"5) A quoi sert le bouton Rapide/Lent :"+chr$(13)
   a$=a$+"   Il sert à accélérer ou ralentir le jeu des autres joueurs, selon que"+chr$(13)
   a$=a$+"   vous souhaitez passer rapidement dessus ou suivre attentivement leur jeu."+chr$(13)
   a$=a$+"6) Si vous avez l'impression que le jeu s'est bloqué (boutons devenus inactifs) :"+chr$(13)
   a$=a$+"   - Soit vous avez décomposé une combinaison (rajoutez des dés dans la réserve)"+chr$(13)
   a$=a$+"   - Soit vous avez mis en réserve un ou plusieurs dé(s) perdant(s) (enlevez le(s))"
   message a$
return

noir: : rem remise en noir des points des dés
   for i=1 to 6
      dp=nt(i)
      gosub choix
   next i
return

plus: : rem Calcul du total en plus
   if ir>0
      a=0
      for i=1 to ir
         for j=1 to 6
            if left(100+(j-1)*10)>685 and top(100+(j-1)*10)=112*(dr+i-1)+8
               a=a+nt(j)*power(10,ir-i)
            end_if
         next j
      next i
      gosub calcul
      nr=tt
   else
      nr=0
   end_if
   caption 256,"Plus   : "+str$(nr)+" Points"
   caption 208+tj*2,ar+nr
return

points: : rem Affichage de la valeur des combinaisons
   hide 300
   active 0
   a$="Valeur en points des combinaisons gagnantes :"+chr$(13)
   a$=a$+"-------------------------------------------"+chr$(13)
   a$=a$+"   [5] = 50 points (demi)                            [1] = 100 points (as)"+chr$(13)
   a$=a$+"   [2] + [2] + [2] = 200 points (triplet)     [3] + [3] + [3] =  300 points"+chr$(13)
   a$=a$+"   [4] + [4] + [4] = 400 points                  [5] + [5] + [5] =  500 points"+chr$(13)
   a$=a$+"   [6] + [6] + [6] = 600 points                  [1] + [1] + [1] = 1000 points (3 as)"+chr$(13)
   a$=a$+"   [3] + [3] + [4] + [4] + [6] + [6] = 1500 points (triple-doublets)"+chr$(13)
   a$=a$+"   [1] + [2] + [3] + [4] + [5] + [6] = 1500 points (suite)"+chr$(13)
   a$=a$+"   [4] + [4] + [4] + [4] + [4] + [4] = 1500 points (sixtuplet simple)"+chr$(13)
   a$=a$+"   [1] + [1] + [1] + [1] + [1] + [1] = 2000 points (sixtuplet d'as)"+chr$(13)
   a$=a$+"- Triplets, triples-doublets, suites et sixtuplets doivent être obtenus en un seul lancer"+chr$(13)
   a$=a$+"- La règle est toujours la combinaison la plus forte"+chr$(13)
   a$=a$+"  (exemple : 3 fois [5] ne peut pas faire 150, c'est un triplet = 500 points)"+chr$(13)
   a$=a$+"- On ne peut fragmenter un triplet, une suite, un triple-doublet ou un sixtuplet"+chr$(13)
   a$=a$+"  (exemple : soit une suite, vous ne pouvez pas prendre [1] et [5] pour faire 150)"+chr$(13)
   message a$
return

quatre: : rem Dessin du 4
   2d_circle 30,30,8
   2d_circle 82,30,8
   2d_circle 30,82,8
   2d_circle 82,82,8
return

quit: : rem Quitter le jeu
   a$="Comment, vous envisagez de quitter ce jeu !??"+chr$(13)
   a$=a$+"Êtes-vous bien sûr de cela ?????????"
   a=message_confirmation_yes_no(a$)
   if a=1
      goto zquit
   end_if
return

regles: : rem Affichage de la règle du jeu
   hide 300
   active 0
   a$="Règles du jeu :"+chr$(13)
   a$=a$+"---------------"+chr$(13)
   a$=a$+"   5000++ est une variante méridionale plus subtile du jeu de 5000."+chr$(13)
   a$=a$+"Elle comporte davantage de combinaisons gagnantes permettant un jeu plus fin."+chr$(13)+chr$(13)
   a$=a$+" - Ce jeu se joue à au moins 2 joueurs et jusqu'à N joueurs"+chr$(13)
   a$=a$+" - Il faut 6 dés"+chr$(13)
   a$=a$+" - Les joueurs jouent dans le sens des aiguilles d'une montre"+chr$(13)
   a$=a$+" - Celui qui commence est choisi au hasard ou déterminé d'une façon convenue"+chr$(13)
   a$=a$+" - Les joueurs, chacun leur tour, lancent les 6 dés en même temps"+chr$(13)
   a$=a$+" - Le joueur met des dés en réserve selon les valeurs en points déjà précisées"+chr$(13)
   a$=a$+" - Il doit mettre au moins un dé en réserve"+chr$(13)
   a$=a$+" - Il ne peut mettre en réserve que des dés gagnants"+chr$(13)
   a$=a$+" - Il n'est pas obligé de mettre en réserve tous les dés gagnants"+chr$(13)
   a$=a$+" - Il relance tous les dés, perdants et gagnants non mis en réserve (s'il le souhaite)"+chr$(13)
   a$=a$+" - Il a droit à 3 lancers maximum pour cette série"+chr$(13)
   a$=a$+" - Il peut s'arrêter avant le 3° lancer, mais alors il doit prendre tous les points"+chr$(13)
   a$=a$+" - S'il réussit à mettre les 6 dés en réserve,"+chr$(13)
   a$=a$+"   il a droit à une nouvelle série de 3 lancers (et ceci N fois)"+chr$(13)
   a$=a$+" - Pour commencer à initier le décompte, il faut obtenir au moins 500 points"+chr$(13)
   a$=a$+" - Si, à la fin de la série de lancers, le joueur ne peut pas mettre"+chr$(13)
   a$=a$+"   un dé en réserve, le cumul en cours retombe à zéro, mais pas le décompte final"+chr$(13)
   a$=a$+" - Lorsque le joueur arrête la série de lancers, il ne peut choisir"+chr$(13)
   a$=a$+"   de prendre seulement tels ou tels points gagnants, il doit les prendre tous"+chr$(13)
   a$=a$+" - Le cumul du joueur est alors additionné à son décompte"+chr$(13)
   a$=a$+" - Le gagnant est le premier dont le décompte atteint juste 5000 points,"+chr$(13)
   a$=a$+"   et le jeu s'arrête à ce moment-là"+chr$(13)
   a$=a$+" - Le joueur qui dépasse 5000 points doit alors viser à atteindre 10000 points, etc..."+chr$(13)
   a$=a$+"   tandis que les autres continuent vers 5000 ou 10000 (ou plus) selon les cas."+chr$(13)
   message a$
return

reserve: : rem Mettre un dé en réserve
   id=0 : gosub noir
   dc=number_click
   if left(dc)<685
      ir=ir+1
      left dc,688
      top dc,112*(dr+ir-1)+8
   else
      if ((top(dc)-8)/112)+1=dr+ir
         if ir>0
            id=1
            2d_target_is dc
            2d_fill_color 255,0,0
            dp=nt(((dc-100)/10)+1)
            gosub cases
         end_if
      end_if
   end_if
   gosub boutons
return

six: : rem Dessin du 6
   2d_circle 27,37,8
   2d_circle 56,37,8
   2d_circle 85,37,8
   2d_circle 27,75,8
   2d_circle 56,75,8
   2d_circle 85,75,8
return

suivant: : rem Passer au joueur suivant
   for i=100 to 150 step 10
      off_click i
   next i
   for i=252 to 258 step 2
      caption i,""
   next i
   gosub des
   inactive 262
   inactive 266
   gosub bis
   font_color 178+tj*2,0,0,0
   tj=tj+1
   if tj>4
      tj=1
   end_if
   font_color 178+tj*2,255,0,0
return

tapis: : rem Calcul du nombre de points présents sur le tapis
   a=0 : b=0 : c=0
   for i=1 to 6
      if left(100+(i-1)*10)<685
         c=c+1
      end_if
   next i
   for i=1 to 6
      if left(100+(i-1)*10)<685
         b=b+1
         a=a+nt(i)*power(10,c-b)
      end_if
   next i
   gosub calcul
   tb=tt
return

total: : rem Affichage du total dans la liste
   inactive 262
   active 266
   caption 208+tj*2,"0000"
   if count(218+tj*2)>0 or ((ar+nr)>499)
      item_add 218+tj*2,ar+nr
      j=0
      for i=1 to count(218+tj*2)
         j=j+val(item_read$(218+tj*2,i))
      next i
      caption 238+tj*2,j
   else
      caption 256,"  Total insuffisant"
   end_if
   if j/5000=int(j/5000) and j>0
      caption 256,"Vous avez gagné !"
      midi_on
         for i=60 to 81 step 3
            midi_play i,11
         next i
         midi_play 84,7
      midi_off
      wait 500
      caption 238+tj*2,"00000"
      tm(tj)=tm(tj)+1
      caption 288+tj*2,tm(tj)
      gosub coupe
      clear 218+tj*2
      gosub bis
      inactive 262
      active 260
      inactive 266
      for i=1 to 4
         clear 218+i*2
         caption 238+i*2,"000000"
      next i
      font_color 178+tj*2,0,0,0
      tj=tj+1
      if tj>4
         tj=1
      end_if
      font_color 178+tj*2,255,0,0
   end_if
return

trois: : rem Dessin du 3
   2d_circle 85,27,8
   2d_circle 55,55,8
   2d_circle 27,85,8
return
  
un: : rem Dessin du 1
   2d_circle 55,55,8
return

vite: : rem Régulation de la vitesse du jeu
return

zquit: : rem Fin du jeu
terminate

Amusez-vous bien !!!
(Je reviendrai dans quelques temps vous faire la suite,
c'est à dire faire jouer l'ordinateur).
 Laughing alien Laughing
(ah, et ne vous occupez pas du bouton « Rapide »,
c'est destiné à la version ultérieure)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
jjn4

avatar

Nombre de messages : 1656
Date d'inscription : 13/09/2009

MessageSujet: Re: Le jeu de 5000++ (version préparatoire)   Mar 3 Juin 2014 - 23:17

Eh bien dis donc,
il est mort, le forum, ces temps-ci !
Vous ne savez pas ce que vous ratez... !
 Laughing  alien  Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Le jeu de 5000++ (version préparatoire)   Mar 3 Juin 2014 - 23:55

J'ai essayé rapidement, mais je n'ai pas tout très bien compris dans l'utilisation.
Si j'ai bien compris, c'est une sorte de Yam's, non ? (Je ne suis pas sûr d'avoir bien compris, mais ce que j'ai compris y ressemble)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1656
Date d'inscription : 13/09/2009

MessageSujet: Re: Le jeu de 5000++ (version préparatoire)   Mer 4 Juin 2014 - 22:27

Mouaih, un genre de Yam's, dans un sens...
Pour ce qui est de comprendre le fonctionnement,
il suffit de lire les règles, avec l'exemple, et le mode d'emploi.

Bon, j'explique sommairement :
Il faut commencer par faire 500 points pour commencer.
En trois lancers (plus, si on place les 6 dés en réserve).
Il faut mettre les dés gagnants dans la réserve en cliquant dessus.
Les dés gagnants sont les 5 (= 50 pts) et les 1 (= 100 pts)
mais il y a aussi les combinaisons de dés, qui sont gagnantes :
les triplets (ex: 4-4-4 = 400 pts), les suites (1-2-3-4-5-6 = 1500 pts),
les sixtuplets (ex : 6-6-6-6-6-6 = 1500 pts) et d'autres... (voir Aide).
Il faut mettre au minimum un dé en réserve à chaque lancer,
et tous les dés gagnants au derniers lancer (le 3° ou celui où on s'arrête).
Notons qu'on ne peut pas décomposer les combinaisons,
et l'ordinateur bloque les boutons si vous ne respectez pas les règles.
(là, ce n'est pas vraiment une simple table d'exercices).

Personne ne connaît le jeu de 5000 ?
Le 5000 classique se joue avec 5 dés, le 5000++ avec 6 dés.
Lisez attentivement les règles et vous verrez que c'est très addictif.
 Basketball  alien  Basketball
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Contenu sponsorisé




MessageSujet: Re: Le jeu de 5000++ (version préparatoire)   

Revenir en haut Aller en bas
 
Le jeu de 5000++ (version préparatoire)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Offre promotionnelle : SnagIT 7.25 en version gratuite !
» Comment envoyer une détection chez avira avec Antivir 9 français - Version Classic
» Offre exceptionnelle : True Image 10 en version gratuite et complète
» [Résolu] Pb pour la désinstallation d'Antivir version Anglaise
» [Résolu] Dernière version d'Avast

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: