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 Marienbad

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

avatar

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

MessageSujet: Le jeu Marienbad   Ven 28 Mar 2014 - 4: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 - 11: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 : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 10: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 : 2483
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 10: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 : 10413
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

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

--- doublon - supprimé !


Dernière édition par Klaus le Ven 28 Mar 2014 - 11: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 : 10413
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 11: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 : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 12: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 : 2483
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Le jeu Marienbad   Ven 28 Mar 2014 - 23: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 : 10413
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Le jeu Marienbad   Sam 29 Mar 2014 - 0: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 : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Le jeu Marienbad   Sam 29 Mar 2014 - 10: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
Voir le sujet précédent Voir le sujet suivant 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: