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
» PanExpress : l'éditeur Panoramic avec création d'objet
par Jean Claude Aujourd'hui à 8:27

» Projet de planétarium virtuel.
par Pedro Alvarez Hier à 20:53

» Quantité de mémoire utilisée par un exe
par Jack Hier à 16:39

» Problème avec 'file_load'.
par Pedro Alvarez Lun 18 Juin 2018 - 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

» Cadre pour image
par Jean Claude Mar 12 Juin 2018 - 16:31

» Créateur d'objets Panoramic
par Minibug Mar 12 Juin 2018 - 14:02

» Planétarium gratuit.
par Jean Claude Sam 9 Juin 2018 - 18:50

» Comment afficher une image sans fond.
par JL35 Sam 9 Juin 2018 - 14:16

» image_width(n) et image_height(n)
par silverman Sam 9 Juin 2018 - 11:22

» Site sur la programmation sympa
par Jean Claude Jeu 7 Juin 2018 - 11:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Le jeu Marienbad

Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Le jeu Marienbad   Ven 28 Mar 2014 - 2:53

Nouveau "ancien" jeu: le jeu de Marienbad. Au moins, c'est sous ce nom que je l'ai connu.
Code:
' C:\Documents and Settings\Klaus\Mes documents\Mes projets Panoramic\Programmes pour Panoramiciens\marienbad.bas
 
labels()
constantes()
variables()
user_variables()
objets()
initialisations()
end
 
sub variables()
  dim no_forms%(1)
  dim no%, res%, KGF_present%, WBurl$
  dim Form_1% : Form_1% = 0
  dim Button_1% : Button_1% = 1
  dim Button_2% : Button_2% = 2
  dim Button_3% : Button_3% = 3
  dim Button_4% : Button_4% = 4
  dim Button_5% : Button_5% = 5
  dim Button_6% : Button_6% = 6
  dim Button_7% : Button_7% = 7
  dim Button_8% : Button_8% = 8
  dim Button_9% : Button_9% = 9
  dim Button_10% : Button_10% = 10
  dim Button_11% : Button_11% = 11
  dim Button_12% : Button_12% = 12
  dim Button_13% : Button_13% = 13
  dim Button_14% : Button_14% = 14
  dim Button_15% : Button_15% = 15
  dim Button_16% : Button_16% = 16
  dim Button_17% : Button_17% = 17
  dim Main_menu_1% : Main_menu_1% = 18
  dim Sub_menu_3% : Sub_menu_3% = 19
  dim Sub_menu_4% : Sub_menu_4% = 20
  dim Sub_menu_5% : Sub_menu_5% = 21
  dim Sub_menu_6% : Sub_menu_6% = 22
  dim Sub_menu_7% : Sub_menu_7% = 23
  dim Sub_menu_8% : Sub_menu_8% = 24
end_sub
 
sub charger_KGF()
  if KGF_present%=0
    dll_on KGF_dll$
    KGF_present%=1
  end_if
end_sub
 
sub objets()
  Top no%, 30
  Left no%, 204
  Width no%, 488
  Height no%, 509
  Caption no%, "Form_1"
 
' Button_1
  no% = no% + 1
  Button no%
  Top no%, 50
  Left no%, 90
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig1
 
' Button_2
  no% = no% + 1
  Button no%
  Top no%, 130
  Left no%, 90
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig2
 
' Button_3
  no% = no% + 1
  Button no%
  Top no%, 130
  Left no%, 130
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig2
 
' Button_4
  no% = no% + 1
  Button no%
  Top no%, 130
  Left no%, 170
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig2
 
' Button_5
  no% = no% + 1
  Button no%
  Top no%, 210
  Left no%, 90
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig3
 
' Button_6
  no% = no% + 1
  Button no%
  Top no%, 210
  Left no%, 130
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig3
 
' Button_7
  no% = no% + 1
  Button no%
  Top no%, 210
  Left no%, 170
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig3
 
' Button_8
  no% = no% + 1
  Button no%
  Top no%, 210
  Left no%, 210
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig3
 
' Button_9
  no% = no% + 1
  Button no%
  Top no%, 210
  Left no%, 250
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig3
 
' Button_10
  no% = no% + 1
  Button no%
  Top no%, 300
  Left no%, 90
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig4
 
' Button_11
  no% = no% + 1
  Button no%
  Top no%, 300
  Left no%, 130
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig4
 
' Button_12
  no% = no% + 1
  Button no%
  Top no%, 300
  Left no%, 170
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig4
 
' Button_13
  no% = no% + 1
  Button no%
  Top no%, 300
  Left no%, 210
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig4
 
' Button_14
  no% = no% + 1
  Button no%
  Top no%, 300
  Left no%, 250
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig4
 
' Button_15
  no% = no% + 1
  Button no%
  Top no%, 300
  Left no%, 290
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig4
 
' Button_16
  no% = no% + 1
  Button no%
  Top no%, 300
  Left no%, 330
  Width no%, 22
  Height no%, 64
  Caption no%, ""
  Hint no%, ""
  Font_size no%, 10
  On_click no%,lig4
 
' Button_17
  no% = no% + 1
  Button no%
  Top no%, 400
  Left no%, 90
  Width no%, 76
  Height no%, 26
  Caption no%, "A toi !"
  Hint no%, ""
  Font_size no%, 10
  Font_bold no%
  On_click no%,atoi
 
' Main_menu_1
  no% = no% + 1
  Main_menu no%
 
' Sub_menu_3
  no% = no% + 1
  Sub_menu no%
  Parent no%,18
  Caption no%, "Jeu"
 
' Sub_menu_4
  no% = no% + 1
  Sub_menu no%
  Parent no%,18
  Caption no%, "Aide"
 
' Sub_menu_5
  no% = no% + 1
  Sub_menu no%
  Parent no%,19
  Caption no%, "Nouveau"
  On_click no%,nouveau
 
' Sub_menu_6
  no% = no% + 1
  Sub_menu no%
  Parent no%,19
  Caption no%, "Sortir"
  On_click no%,sortir
 
' Sub_menu_7
  no% = no% + 1
  Sub_menu no%
  Parent no%,20
  Caption no%, "Règles"
  On_click no%,regles
 
' Sub_menu_8
  no% = no% + 1
  Sub_menu no%
  Parent no%,20
  Caption no%, "A-propos"
  On_click no%,apropos
 
end_sub
 
sub initialisations()
  ligne% = 0
  reste%(1) = 1
  reste%(2) = 3
  reste%(3) = 5
  reste%(4) = 7
end_sub
 
' ********* labels
sub labels()
  label apropos
  label atoi
  label lig1
  label lig2
  label lig3
  label lig4
  label nouveau
  label regles
  label sortir

end_sub
 
' ********* procédures
Sub user_variables()
  '  Placez ici vos variables utilisées dans vos procédures
  dim ligne%, reste%(4)
End_Sub

Sub constantes()
  ' adapter ici le chemin vers KGF.dll
  dim KGF_dll$ : KGF_dll$ = "KGF.dll"
  dim deb%(4) : deb%(1) = 1 : deb%(2) = 2 : deb%(3) = 5 : deb%(4) = 10
  dim fin%(4) : fin%(1) = 1 : fin%(2) = 4 : fin%(3) = 9 : fin%(4) = 16
End_Sub

Sub lig1()
  if (ligne%>0) and (ligne%<>1) then exit_sub
  hide number_click
  ligne% = 1
  reste%(ligne%) = reste%(ligne%) - 1
End_sub

Sub lig2()
  if (ligne%>0) and (ligne%<>2) then exit_sub
  hide number_click
  ligne% = 2
  reste%(ligne%) = reste%(ligne%) - 1
End_sub

Sub lig3()
  if (ligne%>0) and (ligne%<>3) then exit_sub
  hide number_click
  ligne% = 3
  reste%(ligne%) = reste%(ligne%) - 1
End_sub

Sub lig4()
  if (ligne%>0) and (ligne%<>4) then exit_sub
  hide number_click
  ligne% = 4
  reste%(ligne%) = reste%(ligne%) - 1
End_sub

Sub atoi()
  dim_local i%, j%, k%, bits%(3), r%, i1%, i2%, nl%
  if ligne%=0
    if message_confirmation_yes_no("Veux-tu vraiment passer ton tour ?")<>1 then exit_sub
    message "D'accord, mais tu triches !"
  end_if
  ligne% = 0
 
  for i%=1 to 4
    if reste%(i%)>0
      nl% = nl% + 1
      if i1%=0
        i1% = i%
      else
        if i2%=0 then i2% = i%
      end_if
    end_if
  next i%
  if nl%=0
    message "BRAVO ! Tu as gagné !"
    nouveau()
    exit_sub
  end_if
  if nl%=1
    for i%=deb%(i1%) to fin%(i1%)
      hide i%
    next i%
    message "Dommage pour toi. J'ai gagné !"
    nouveau()
    exit_sub
  end_if
  if nl%=2
    if reste%(i1%)<>reste%(i2%)
      if reste%(i1%)>reste%(i2%)
        i% = i1%
        r% = reste%(i1%) - reste%(i2%)
        prendre(i%,r%)
      else
        i% = i2%
        r% = reste%(i2%) - reste%(i1%)
        prendre(i%,r%)
      end_if
      exit_sub
    end_if
  end_if
 
  for i%=1 to 4
    bits%(1) = bin_xor(bits%(1),bin_and(reste%(i%),1))
    bits%(2) = bin_xor(bits%(2),bin_and(reste%(i%),2)/2)
    bits%(3) = bin_xor(bits%(3),bin_and(reste%(i%),4)/4)
  next i%
  r% = bits%(1) + bits%(2)*2 + bits%(3)*4
  if reste%(1)=0
    if reste%(2)=0
    end_if
  end_if
 
  if r%>0
    for i%=1 to 4
      if bin_and(reste%(i%),r%)=r%
        prendre(i%,r%)
        exit_sub
      end_if
    next i%
  end_if
 
  for i%=1 to 4
    if reste%(i%)>0
      reste%(i%) = reste%(i%) - 1
      for j%=fin%(i%) to deb%(i%) step -1
        if hide(j%)=0
          hide j%
          exit_sub
        end_if
      next j%
    end_if
  next i%
End_sub

sub prendre(i%,r%)
  dim_local j%, k%, x%
  reste%(i%) = reste%(i%) - r%
  for j%=1 to r%
    for k%=fin%(i%) to deb%(i%) step -1
      if hide(k%)=0
        hide k%
        x% = x% + 1
        if x%=r% then exit_sub
      end_if
    next k%
  next j%
end_sub

Sub nouveau()
  dim_local i%
  for i%=button_1% to button_17%
    show i%
  next i%
  initialisations()
End_sub

Sub sortir()
  terminate
End_sub

Sub regles()
  dim_local nl$ : nl$ = chr$(13)+chr$(10)
  dim_local s$
  s$ = "Le jeu de Marienbad"+nl$+nl$
  s$ = s$ + "Enlèvez une ou plusieurs allumettes"+nl$
  s$ = s$ + "dans une seule des 4 lignes, en cliquant dessus."+nl$
  s$ = s$ + "Ensuite, clique sur [A toi !] pour laisser jouer l'ordinateur."+nl$
  s$ = s$ + "Celui qui enlève la dernière allumette a gagné."+nl$+nl$
  s$ = s$ + "Essaie de ne pas tricher..."
  message s$
End_sub

Sub apropos()
  message "Jeu de Marienbad - fait par Klaus (Mars 2014)"
End_sub

' ********* evenements
apropos:
  apropos()
  return

atoi:
  atoi()
  return

lig1:
  lig1()
  return

lig2:
  lig2()
  return

lig3:
  lig3()
  return

lig4:
  lig4()
  return

nouveau:
  nouveau()
  return

regles:
  regles()
  return

sortir:
  sortir()
  return

 
 
' activer la ligne suivante si KGF_SUB.bas est utilisée
' et adapter le chemin vers KGF_SUB.bas
' #INCLUDE "KGF_SUB.bas"


Dernière édition par Klaus le Ven 28 Mar 2014 - 9:12, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 8:00

Bonjour Klaus, merci pour ce petit jeu.
Tu as un bug quand l'ordi gagne et que tu relances une partie.
La première fois que tu cliques sur A toi dans la seconde partie, l'ordinateur gagne ...
Il triche un peu là quand même ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

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

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 8:50

Bonjour Klaus,

Voila de quoi nous occupé...

Par contre je rencontre aussi des bugs sur le programme !
J’arrive a enlever toutes une ligne d'allumettes et je gagne a chaque fois !

Cool ! cheers cheers cheers 

Merci pour cette (ré)création Klaus !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 9:15

--- doublon - supprimé !


Dernière édition par Klaus le Ven 28 Mar 2014 - 9:16, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 9:16

@Jicehel:
J'ai corrigé la relance pour une nouvelle partie - ça devrait aller mieux ainsi.

@Minibug:
Tu gagnes à tous les coups - et sans tricher ? C'est-à-dire sans passer ton tour ? Car le but est bien d'enlever une ou plusieurs allumettes dans une seule ligne, puis de laisser l'ordinateur répondre. Ca devrait être un peu plus difficile que ça...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 10:16

Minibug réessaye peut être maintenant que le bug est corrigé ... Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

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

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 21:48

Bon eh bien j'avoue la ca marche... j'ai perdu !!!

Merci Klaus.

Et voila encore un jeu a ajouter dans notre 'Panotheque'  I love you   cheers 

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 22:00

En fait, il y a des combinaisons perdantes. Et la combinaison 1-3-5-7 en est une. Si c'est ton tour lors d'une de ces combinaisons, et si l'adversaire ne fait pas d'erreur, alors quoi que tu fasses, tu perdras toujours. Et le programme ne fait pas d'erreur.

Pour avoir une chance de gagner, ne joue pas en premier, au début du jeu, et laisse l'ordinateur jouer en premier. Bien sûr, il te demandera confirmation - c'est normal. Alors, l'ordinateur enlève une seule allumette car il faut bien en enlever au moins une.

A partir de là, tu es dans une position gagnable. Et si tu ne fais pas d'erreur, et sans passer à nouveau ton tour, il te sera possible de gagner, à condition de connaître le principe mathématique, ou à condition d'avoir mémorisé toutes les configurations perdantes. Car si tu est dans une telle configuration gagnable, le but du jeu consiste à produire une position perdante pour le tour de l'ordinateur, et ainsi de suite jusqu'à la fin de la partie.

Mais attention: une seule erreur de ta part, et c'est l'ordinateur qui produira alors une position perdante pour ton prochain tour, et c'est raté.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Le jeu Marienbad   Sam 29 Mar 2014 - 8:17

Je confirme, ça marche bien. Par contre honnêtement, c'est moins addictif que 2048.
Ce qui n’empêche pas le jeu d'être intéressant à connaitre Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Le jeu Marienbad   

Revenir en haut Aller en bas
 
Le jeu Marienbad
Revenir en haut 
Page 1 sur 1

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: