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
» 2D_fill_color
cavaliers - Le jeu des quatre cavaliers  Emptypar papydall Aujourd'hui à 14:47

» Consommation gaz électricité
cavaliers - Le jeu des quatre cavaliers  Emptypar leclode Mer 17 Avr 2024 - 11:07

» trop de fichiers en cours
cavaliers - Le jeu des quatre cavaliers  Emptypar lepetitmarocain Mer 17 Avr 2024 - 10:19

» on_key_down (résolu)
cavaliers - Le jeu des quatre cavaliers  Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
cavaliers - Le jeu des quatre cavaliers  Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

» Bataille-navale
cavaliers - Le jeu des quatre cavaliers  Emptypar jjn4 Mer 3 Avr 2024 - 14:08

» Minimiser une fenêtre Panoramic.
cavaliers - Le jeu des quatre cavaliers  Emptypar Pedro Mar 2 Avr 2024 - 13:50

» Récapitulatif ludothèque panoramic jjn4
cavaliers - Le jeu des quatre cavaliers  Emptypar jjn4 Lun 1 Avr 2024 - 18:04

» demande explication KGF pour imprimer en mm
cavaliers - Le jeu des quatre cavaliers  Emptypar JL35 Jeu 28 Mar 2024 - 17:28

» Petit passage furtif
cavaliers - Le jeu des quatre cavaliers  Emptypar Froggy One Mer 27 Mar 2024 - 14:26

» SPIN et aide langage (résolu)
cavaliers - Le jeu des quatre cavaliers  Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
cavaliers - Le jeu des quatre cavaliers  Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
cavaliers - Le jeu des quatre cavaliers  Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
cavaliers - Le jeu des quatre cavaliers  Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
cavaliers - Le jeu des quatre cavaliers  Emptypar Klaus Dim 3 Mar 2024 - 9:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-34%
Le deal à ne pas rater :
Smartphone 6,67 POCO M6 Pro – Ecran 120 Hz ( 8+256 Go)
152 € 230 €
Voir le deal

 

 Le jeu des quatre cavaliers

Aller en bas 
5 participants
AuteurMessage
papydall

papydall


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 1:09

Salut tout le monde.

Je vous propose un petit casse-tête à résoudre.
Petit, parce qu’il se déroule sur une grille de 3X3 cases, casse-tête parce qu’il peut (j’en suis persuadé) donner du fil à retordre à certains !

Principe du jeu : sur un plateau de 3X3 cases, on place deux cavaliers d’une couleur sur les deux coins du haut et deux autres cavaliers d’une autre couleur sur les deux coins du bas. Le but du jeu est de permuter les cavaliers :  ceux du haut doivent prendre les places de ceux du bas et ceux du bas doivent prendre les places de ceux du haut.
Il n’est permis de déplacer un cavalier que vers une case vide en utilisant les mouvements du cavalier du jeu d’échec.
Simple, vous dites ? Alors tentez votre chance !

Vous pouvez (si vous voulez faire travailler vos neurones) télécharger le programme sur mon Webdav : 4Cavalieres.zip
Bon, je préfère des cavalières  Laughing  à la place des cavaliers, mais le principe du jeu reste le même.
Dézippez le zip où bon vous semble, adaptez (ligne 16) le chemin qui mène au jeu et non à Rome  (comme c’est écrit dans le code ! ) et puis ... je vous souhaite quelques moments de détente après les moments de réflexion.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 12:41

Ben ... c'est pas facile,

J'aime bien les cavalières au bord de la plage, je suppose qu'elle son jumelles. Heu... les canassons aussi lol! 

Pour le moment j'ai réussi à les faire passer du haut vers le bas et vice-versa, mais cote à cote.

cavaliers - Le jeu des quatre cavaliers  Image_11
Revenir en haut Aller en bas
papydall

papydall


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 13:08

Jean Claude, c’est bien ce que tu as réalisé mais ce n’est pas assez. Laughing  Laughing 
Le but du jeu c’est qu’au final, celles du haut descendent (en bas) et celles du bas montent (en haut) et que les quatre occupent les coins et non côte à côte.
Il te reste beaucoup de travail mais tu arriveras avec un peu (ou beaucoup) de réflexion et de persévérance !
Bon divertissement !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 14:32

Pas encore testé, je viens de voir que tu avais fait ce nouveau jeu.
J'y remédie dès que possible Wink
Revenir en haut Aller en bas
JL35




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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 16:54

papydall, tu nous embêtes, c'est trop dur...
manque un petit bouton réinit quand on ne sait plus quoi faire et qu'on tourne en rond...  Very Happy
Pour faire comme jean Claude ça va assez vite, mais après...  scratch

et pour faire le puriste, je dirais qu'il manque le end_sub de la sub Jeu mais c'est juste pour t'embêter.

PS je viens de réussir,mais en 26 coups (cheval de bronze), c'est plutôt laborieux !
cavaliers - Le jeu des quatre cavaliers  Img10
Revenir en haut Aller en bas
papydall

papydall


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 20:24

Bien, Voilà JL35  a gagné  le cheval de bronze ; il reste   le cheval d’argent et surtout le cheval d’or, alors à vos boutons de souris !
Personnellement j’ai eu droit au cheval de bronze deux fois de suite et puis le cheval d’argent était lui aussi au rendez-vous, ensuite ….
 je ne sais plus refaire aucune de ces  performances !

JL35 a écrit:
et pour faire le puriste, je dirais qu'il manque le end_sub de la sub Jeu mais c'est juste pour t'embêter.

Mais tu ne m’embêtes pas ; tu as bien fait pour me corriger (Heu … me corriger, non mais corriger ce que j’ai oublié de coder !)
Et tu as aussi l’excellente idée d’ « un petit bouton réinit quand on ne sait plus quoi faire et qu'on tourne en rond... »
Et bien c'est fait : voici comment je me suis pris.

Code:

rem ============================================================================
rem         Problème des quatres cavalières
rem              4cavalieres.bas
rem               Par Papydall
rem ============================================================================

Jeu()

end
rem ============================================================================
SUB Jeu()

    label click
    dim rep$,fich$,i,t(9),n ,clic ,depart,arrivee, nb_deplacement
    height 0,700 : width 0,1200
    rep$ = "C:\Users\acer\Desktop\4Cavalieres\" : ' Adapter le chemin qui mène à ... Rome !

    button 5 : top 5,50 : left 5,900 : caption 5,"RAZ" : on_click 5,click
    alpha  6 : top 6,55 : left 6,1000: caption 6,"Nb Mouvements : " : font_bold 6
    alpha  7 : top 7,55 : left 7,1100
    for i = 10 to 90 step 10
        picture i : width i,260 : height i,200
        on_click i,click
    next i
    top 10,010 : left 10,030 : top 20,010 : left 20,300
    top 30,010 : left 30,570 : top 40,220 : left 40,030
    top 50,220 : left 50,300 : top 60,220 : left 60,570
    top 70,430 : left 70,030 : top 80,430 : left 80,300
    top 90,430 : left 90,570

    Init(): info()
    
end_sub
rem ============================================================================
SUB Init()
    dim_local i

    for i = 10 to 90 step 10 : file_load i,rep$+"cavaliere0.jpg" : t(i/10) = 0 : next i
    fich$ = "cavaliere1.jpg" : file_load 10,rep$+fich$  : file_load 30,rep$+fich$
    fich$ = "cavaliere2.jpg" : file_load 70,rep$+fich$  : file_load 90,rep$+fich$
    t(1) = 1 : t(3) = 1 : t(7) = 2 : t(9) = 2 : clic = 0 : Nb_deplacement = 0
    caption 7,str$(nb_deplacement)
END_SUB
rem ============================================================================
' Informations sur le jeu
SUB Info()

    label fermer
    form 1 : left 1,50 : top 1,50 : height 1,500 : width 1, 700
    print_target_is 1 : font_bold 1 : font_size 1,12 : font_color 1,0,0,255
    button 2 : parent 2,1 : top 2,400 : left 2, 300 : caption 2,"Fermer"
    on_click 2,fermer
    print : print : print " Problème des quatres cavaliers":print
    print " Sur un plateau de 3X3 cases, on place deux cavalières (sur la plage) en haut":print
    print " et deux autres cavalières (dans la forêt.) en bas" :print
    print " Le but du jeu est de permuter les cavalières (sur la plage et dans la forêt)": print
    print " avec le minimum de déplacements." : print
    print " Il est seulement permis de déplacer une cavalière vers une case vide en utilisant": print
    print " les mouvements du cavalier du jeu d'échec.": print
    print " Cliquez sur la cavalière à déplacer, puis cliquez sur la case cible.":print
    print " Le programme veille à ce que le déplacement soit possible" :print
    print " Sinon,il ne se passe rien!":print
    print " Il est possible de parvenir à la solution en effectuant seulement seize déplacements.": print
    print " Indice : Il faut passer d'une configuration en X à une configuration en + puis en X ..."

end_sub
rem ============================================================================
' Fermer la fenêtre d'info
Fermer:
  hide 1
  return
rem ============================================================================
' Gestion des clicks
Click:

  n = number_click : clic = clic + 1
  if n = 5 then Init() : return
  if depart = 0 then depart = n
  if clic = 2 then arrivee = n : deplacement_Valide()
  
return
rem ============================================================================
' Teste la validité du déplacement
' La case du départ doit contenir une cavalière et la case d'arrivée doit être libre
' et satisfaire au mouvement du cavalier du jeu d'échec.
SUB Deplacement_Valide()
    dim_local i
    i = arrivee/10
    if (depart = 10) and ((arrivee = 60) or ( arrivee = 80)) and (t(i) = 0) then Deplacer()
    if (depart = 20) and ((arrivee = 70) or ( arrivee = 90)) and (t(i) = 0) then Deplacer()
    if (depart = 30) and ((arrivee = 40) or ( arrivee = 80)) and (t(i) = 0) then Deplacer()
    if (depart = 40) and ((arrivee = 30) or ( arrivee = 90)) and (t(i) = 0) then Deplacer()
    if (depart = 60) and ((arrivee = 10) or ( arrivee = 70)) and (t(i) = 0) then Deplacer()
    if (depart = 70) and ((arrivee = 60) or ( arrivee = 20)) and (t(i) = 0) then Deplacer()
    if (depart = 80) and ((arrivee = 10) or ( arrivee = 30)) and (t(i) = 0) then Deplacer()
    if (depart = 90) and ((arrivee = 20) or ( arrivee = 40)) and (t(i) = 0) then Deplacer()
    clic = 0 : depart = 0  : arrivee = 0
    caption 7,str$(nb_deplacement)
    if Nb_deplacement > 15 then verif()
    
END_SUB
rem ============================================================================
' Ici, on effectue le mouvement de la cavalière
SUB Deplacer()
    file_load depart,rep$+"cavaliere0.jpg"
    fich$ = "cavaliere" + str$(t(depart/10)) + ".jpg"
    file_load arrivee,rep$+fich$ : t(arrivee/10) = t(depart/10) : t(depart/10) = 0
    if fich$ <> "cavaliere0.jpg" then Nb_deplacement = Nb_deplacement + 1
END_SUB
rem ============================================================================
' Ici, on vérifie si on a réussi à trouver la solution
' Si oui un message de félicitation (avec appréciation) s'affiche
SUB Verif()
    dim_local t$
    if (t(1) = 2) and (t(3) = 2) and (t(7) = 1) and (t(9) = 1)
       t$ =  "*** Félicitations ***"
       if Nb_deplacement = 16
          t$ = t$ + "!!! BRAVO ! Vous êtes le champion des champions !!!" + chr$(13)
          t$ = t$ + "!!! Vous avez gagné le CHEVAL D'OR !!!"
       else
          if Nb_deplacement < 23
             t$ = "!!! BRAVO ! Vous êtes le champion !!!" + chr$(13)
             t$ = t$ + " Vous pouvez mieux faire !!!" + chr$(13)
             t$ = t$ + "!!! Vous avez gagné le CHEVAL D'ARGENT !!!"
          else
             t$ = "!!! BRAVO ! Vous êtes un champion !!!" + chr$(13)
             t$ = t$ + "Mais vous pouvez améliorer votre score !!!" + chr$(13)
             t$ = t$ + "!!! Vous avez gagné le CHEVAL DE BRONZE !!!"
          end_if
       end_if
       message t$
    end_if
end_sub
rem ============================================================================



NB : je n’ai pas mis à jour le programme sur mon Webdav : il y aura peut-être d’autres modifications.
Alors n’hésitez pas à commenter, à proposer et même à critiquer ! Laughing 
C'est comme ça qu'on apprend.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 21:06

Merci papydall.
Mais j'arrive parfois à des situations bizarres où les clics restent sans effet, alors que j'ai des possibilités de bouger, tout reste figé et il faut quitter, je ne vois pas trop pourquoi... mais je n'ai pas étudié le code.
là par exemple (mais je ne dis pas que c'est lié à cette configuration particulière, d'ailleurs si je la reproduis ça ne le fait plus, et c'était pareil avec la 1ère version):
cavaliers - Le jeu des quatre cavaliers  Cavale10

N'empêche papydall, c'est un beau jeu, en si peu de lignes.
Remarque: la case centrale ne peut pas recevoir d'image  silent (il n'y en a déjà pas trop de disponibles...)
Revenir en haut Aller en bas
papydall

papydall


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 21:40

Ça m’a arrivé aussi la situation de ne plus pouvoir bouger alors que c’est possible et je ne vois pas pourquoi.
Il y a certainement une solution à cela. Je regarderai quand j’aurai grandit un peu !
Pour le moment, j’ai d’autres chats à caresser (il ne faut surtout pas les fouetter !  Laughing  Laughing )

En ce qui concerne la case centrale : c’est vrai qu’elle ne peut pas être une destination : c’est impossible.
D’ailleurs, dans le code ( SUB Deplacement_Valide() ), je teste toutes les cases (départ ou arrivée) sauf la case centrale.

Pour le moment je vais caresser mes chats ! D’ici-là si tu trouves le pourquoi de la situation figée, ça sera parfait.
A +
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 22:14

Eh, moi aussi j'ai d'autres chats à fouetter (drôle d'expression d'ailleurs...).
Je ne vois rien dans le code qui semble propre, à part le fait des subs qui appellent des subs qui appellent des sous-programmes externes..., je ne sais pas, ça me paraît un peu scabreux, même si ce n'est qu'un sentiment non justifié.
Revenir en haut Aller en bas
papydall

papydall


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 23:01

Qui dit mieux ?
Juste ce qu'il faut : 16 coups et   basta !

La question qui se pose : puis-je refaire cette performance ?
J'y retourne pour voir.

cavaliers - Le jeu des quatre cavaliers  C_bmp10
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptyVen 20 Juin 2014 - 23:37

Une  petite amélioration du programme.
Désormais, les déplacements effectués sont affichés dans une liste.
Je pense aussi avoir résolu le problème de l'image figée (les tests peuvent affirmer ou infirmer cela)

J’ai relevé les 16 mouvements nécessaires à réaliser la tâche, mais je ne vais pas les dévoiler, sous peine de gâcher  le plaisir de jouer !

Code:

rem ============================================================================
rem         Problème des quatres cavalières
rem              4cavalieres.bas
rem               Par Papydall
rem ============================================================================

Jeu()

end
rem ============================================================================
SUB Jeu()

    label click
    dim rep$,fich$,i,t(9),n ,clic ,depart,arrivee, nb_deplacement
    height 0,700 : width 0,1200
    rep$ = "C:\Users\acer\Desktop\4Cavalieres\" : ' Adapter le chemin qui mène à ... Rome !

    button 5 : top 5,50 : left 5,900 : caption 5,"RAZ" : on_click 5,click
    alpha  6 : top 6,55 : left 6,1000: caption 6,"Nb Mouvements : " : font_bold 6
    alpha  7 : top 7,55 : left 7,1100
    list 8 : top 8,100 : left 8, 900 : width 8,200 : height 8,550 : font_bold 8
    for i = 10 to 90 step 10
        picture i : width i,260 : height i,200
        on_click i,click
    next i
    top 10,010 : left 10,030 : top 20,010 : left 20,300
    top 30,010 : left 30,570 : top 40,220 : left 40,030
    top 50,220 : left 50,300 : top 60,220 : left 60,570
    top 70,430 : left 70,030 : top 80,430 : left 80,300
    top 90,430 : left 90,570

    Init(): info()

end_sub
rem ============================================================================
SUB Init()
    dim_local i

    for i = 10 to 90 step 10 : file_load i,rep$+"cavaliere0.jpg" : t(i/10) = 0 : next i
    fich$ = "cavaliere1.jpg" : file_load 10,rep$+fich$  : file_load 30,rep$+fich$
    fich$ = "cavaliere2.jpg" : file_load 70,rep$+fich$  : file_load 90,rep$+fich$
    t(1) = 1 : t(3) = 1 : t(7) = 2 : t(9) = 2 : clic = 0 : Nb_deplacement = 0
    caption 7,str$(nb_deplacement)
    clear 8 : item_add 8,"  Mouvements effectués"
END_SUB
rem ============================================================================
' Informations sur le jeu
SUB Info()

    label fermer
    form 1 : left 1,50 : top 1,50 : height 1,500 : width 1, 700
    print_target_is 1 : font_bold 1 : font_size 1,12 : font_color 1,0,0,255
    button 2 : parent 2,1 : top 2,400 : left 2, 300 : caption 2,"Fermer"
    on_click 2,fermer
    print : print : print " Problème des quatres cavaliers":print
    print " Sur un plateau de 3X3 cases, on place deux cavalières (sur la plage) en haut":print
    print " et deux autres cavalières (dans la forêt.) en bas" :print
    print " Le but du jeu est de permuter les cavalières (sur la plage et dans la forêt)": print
    print " avec le minimum de déplacements." : print
    print " Il est seulement permis de déplacer une cavalière vers une case vide en utilisant": print
    print " les mouvements du cavalier du jeu d'échec.": print
    print " Cliquez sur la cavalière à déplacer, puis cliquez sur la case cible.":print
    print " Le programme veille à ce que le déplacement soit possible" :print
    print " Sinon,il ne se passe rien!":print
    print " Il est possible de parvenir à la solution en effectuant seulement seize déplacements.": print
    print " Indice : Il faut passer d'une configuration en X à une configuration en + puis en X ..."

end_sub
rem ============================================================================
' Fermer la fenêtre d'info
Fermer:
  hide 1
  return
rem ============================================================================
' Gestion des clicks
Click:

  n = number_click : clic = clic + 1
  if n = 5 then Init() : return
  if depart = 0 then depart = n
  if clic = 2 then arrivee = n : deplacement_Valide()

return
rem ============================================================================
' Teste la validité du déplacement
' La case du départ doit contenir une cavalière et la case d'arrivée doit être libre
' et satisfaire au mouvement du cavalier du jeu d'échec.
SUB Deplacement_Valide()
    dim_local i
    i = arrivee/10
    if (depart = 10) and ((arrivee = 60) or ( arrivee = 80)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 20) and ((arrivee = 70) or ( arrivee = 90)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 30) and ((arrivee = 40) or ( arrivee = 80)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 40) and ((arrivee = 30) or ( arrivee = 90)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 60) and ((arrivee = 10) or ( arrivee = 70)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 70) and ((arrivee = 60) or ( arrivee = 20)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 80) and ((arrivee = 10) or ( arrivee = 30)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 90) and ((arrivee = 20) or ( arrivee = 40)) and (t(i) = 0) then Deplacer() : exit_sub
    clic = 0 : depart = 0  : arrivee = 0

END_SUB
rem ============================================================================
' Ici, on effectue le mouvement de la cavalière
SUB Deplacer()
    file_load depart,rep$+"cavaliere0.jpg"
    fich$ = "cavaliere" + str$(t(depart/10)) + ".jpg"
    file_load arrivee,rep$+fich$ : t(arrivee/10) = t(depart/10) : t(depart/10) = 0
    if fich$ <> "cavaliere0.jpg" then Nb_deplacement = Nb_deplacement + 1
    item_add 8,"  Case " + str$(depart/10) + " ==> case " + str$(arrivee/10)
    clic = 0 : depart = 0  : arrivee = 0
    caption 7,str$(nb_deplacement)
    if Nb_deplacement > 15 then verif()
    
END_SUB
rem ============================================================================
' Ici, on vérifie si on a réussi à trouver la solution
' Si oui un message de félicitation (avec appréciation) s'affiche
SUB Verif()
    dim_local t$
    if (t(1) = 2) and (t(3) = 2) and (t(7) = 1) and (t(9) = 1)
       t$ =  "*** Félicitations ***"
       if Nb_deplacement = 16
          t$ = t$ + "!!! BRAVO ! Vous êtes le champion des champions !!!" + chr$(13)
          t$ = t$ + "!!! Vous avez gagné le CHEVAL D'OR !!!"
       else
          if Nb_deplacement < 23
             t$ = "!!! BRAVO ! Vous êtes le champion !!!" + chr$(13)
             t$ = t$ + " Vous pouvez mieux faire !!!" + chr$(13)
             t$ = t$ + "!!! Vous avez gagné le CHEVAL D'ARGENT !!!"
          else
             t$ = "!!! BRAVO ! Vous êtes un champion !!!" + chr$(13)
             t$ = t$ + "Mais vous pouvez améliorer votre score !!!" + chr$(13)
             t$ = t$ + "!!! Vous avez gagné le CHEVAL DE BRONZE !!!"
          end_if
       end_if
       message t$
    end_if
end_sub
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptySam 21 Juin 2014 - 0:06

ça attendra un peu, pour le moment  Sleep je ne vais pas me coucher énervé !
bonne nuit !
Revenir en haut Aller en bas
papydall

papydall


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptySam 21 Juin 2014 - 0:47

J’ai modifié mon programme en ajoutant un bouton AUTORUN pour le faire jouer tout seul comme un grand.
Il trouve la solution en 16 coups :  c’est juste le SMIG !
Toujours pour ne pas gâcher le plaisir de torturer ses neurones, je ne vais pas poster cette version.
Il faut laisser le temps pour les Jean Claude, les Jean Charles, et les autres Panoramiciens pour une partie de torture cérébrale !
Peut-être si  les demandes  se font pressantes je posterais la version AUTORUN.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptySam 21 Juin 2014 - 10:40

Première partie: Cheval d'or ... Wink J'ai de la chance

cavaliers - Le jeu des quatre cavaliers  Cavali10
Revenir en haut Aller en bas
JL35




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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptySam 21 Juin 2014 - 11:34

Eh Jicehel, t'es sûr que papydall n'a pas mis la version autorun par erreur ?  Very Happy 
Revenir en haut Aller en bas
papydall

papydall


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

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  EmptySam 21 Juin 2014 - 11:50

Joli !
Le cheval de bronze et le cheval d’or sont « tombés ». Il ne reste plus que le cheval d’argent.
A qui le tour ?

Puisque le talentueux Jicehel  a décroché le cheval d’or et a posté l’image indiquant les mouvements à faire pour réussir le jeu, je vous poste le programme modifié avec l’option AUTORUN.
NB : j’ai remis à jour  mon Webdav.

Code:

rem ============================================================================
rem         Problème des quatres cavalières
rem              4cavalieres.bas
rem               Par Papydall
rem ============================================================================

Jeu()

end
rem ============================================================================
SUB Jeu()

    label click
    dim rep$,fich$,i,t(9),n ,clic ,depart,arrivee, nb_deplacement
    height 0,700 : width 0,1200
    rep$ = "C:\Users\acer\Desktop\4Cavalieres\" : ' Adapter le chemin qui mène à ... Rome !

    button 5 : top 5,50 : left 5,850 : caption 5,"RAZ" : on_click 5,click
    alpha  6 : top 6,55 : left 6,950: caption 6,"Nb Mouvements : " : font_bold 6
    alpha  7 : top 7,55 : left 7,1050
    list 8 : top 8,100 : left 8, 900 : width 8,200 : height 8,550 : font_bold 8
    button 9 : top 9,50 : left 9,1100 : caption 9,"AUTORUN" : on_click 9,click
        for i = 10 to 90 step 10
        picture i : width i,260 : height i,200 : on_click i,click
    next i
    top 10,010 : left 10,030 : top 20,010 : left 20,300
    top 30,010 : left 30,570 : top 40,220 : left 40,030
    top 50,220 : left 50,300 : top 60,220 : left 60,570
    top 70,430 : left 70,030 : top 80,430 : left 80,300
    top 90,430 : left 90,570

    Init(): info()

end_sub
rem ============================================================================
SUB Init()
    dim_local i
    for i = 10 to 90 step 10 : file_load i,rep$+"cavaliere0.jpg" : t(i/10) = 0 : next i
    fich$ = "cavaliere1.jpg" : file_load 10,rep$+fich$  : file_load 30,rep$+fich$
    fich$ = "cavaliere2.jpg" : file_load 70,rep$+fich$  : file_load 90,rep$+fich$
    t(1) = 1 : t(3) = 1 : t(7) = 2 : t(9) = 2 : clic = 0 : Nb_deplacement = 0
    caption 7,str$(nb_deplacement)
    clear 8 : item_add 8,"  Mouvements effectués"
END_SUB
rem ============================================================================
' Informations sur le jeu
SUB Info()

    label fermer
    form 1 : left 1,50 : top 1,50 : height 1,500 : width 1, 700
    print_target_is 1 : font_bold 1 : font_size 1,12 : font_color 1,0,0,255
    button 2 : parent 2,1 : top 2,400 : left 2, 300 : caption 2,"Fermer"
    on_click 2,fermer
    print : print : print " Problème des quatres cavaliers":print
    print " Sur un plateau de 3X3 cases, on place deux cavalières (sur la plage) en haut":print
    print " et deux autres cavalières (dans la forêt.) en bas" :print
    print " Le but du jeu est de permuter les cavalières (sur la plage et dans la forêt)": print
    print " avec le minimum de déplacements." : print
    print " Il est seulement permis de déplacer une cavalière vers une case vide en utilisant": print
    print " les mouvements du cavalier du jeu d'échec.": print
    print " Cliquez sur la cavalière à déplacer, puis cliquez sur la case cible.":print
    print " Le programme veille à ce que le déplacement soit possible" :print
    print " Sinon,il ne se passe rien!":print
    print " Il est possible de parvenir à la solution en effectuant seulement seize déplacements.": print
    print " Indice : Il faut passer d'une configuration en X à une configuration en + puis en X ..."

end_sub
rem ============================================================================
' Fermer la fenêtre d'info
Fermer:
  hide 1
  return
rem ============================================================================
' Gestion des clicks
Click:

  n = number_click : clic = clic + 1
  if n = 5 then Init() : return
  if n = 9 then autoRun() : return
  if depart = 0 then depart = n
  if clic = 2 then arrivee = n : deplacement_Valide()

return
rem ============================================================================
' Teste la validité du déplacement
' La case du départ doit contenir une cavalière et la case d'arrivée doit être libre
' et satisfaire au mouvement du cavalier du jeu d'échec.
SUB Deplacement_Valide()
    dim_local i
    i = arrivee/10
    if (depart = 10) and ((arrivee = 60) or ( arrivee = 80)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 20) and ((arrivee = 70) or ( arrivee = 90)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 30) and ((arrivee = 40) or ( arrivee = 80)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 40) and ((arrivee = 30) or ( arrivee = 90)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 60) and ((arrivee = 10) or ( arrivee = 70)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 70) and ((arrivee = 60) or ( arrivee = 20)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 80) and ((arrivee = 10) or ( arrivee = 30)) and (t(i) = 0) then Deplacer() : exit_sub
    if (depart = 90) and ((arrivee = 20) or ( arrivee = 40)) and (t(i) = 0) then Deplacer() : exit_sub
    clic = 0 : depart = 0  : arrivee = 0

END_SUB
rem ============================================================================
' Ici, on effectue le mouvement de la cavalière
SUB Deplacer()
    file_load depart,rep$+"cavaliere0.jpg"
    fich$ = "cavaliere" + str$(t(depart/10)) + ".jpg"
    file_load arrivee,rep$+fich$ : t(arrivee/10) = t(depart/10) : t(depart/10) = 0
    if fich$ <> "cavaliere0.jpg" then Nb_deplacement = Nb_deplacement + 1
    item_add 8,"  Case " + str$(depart/10) + " ==> case " + str$(arrivee/10)
    clic = 0 : depart = 0  : arrivee = 0
    caption 7,str$(nb_deplacement)
    if Nb_deplacement > 15 then verif()
    
END_SUB
rem ============================================================================
' Ici, on vérifie si on a réussi à trouver la solution
' Si oui un message de félicitation (avec appréciation) s'affiche
SUB Verif()
    dim_local t$
    if (t(1) = 2) and (t(3) = 2) and (t(7) = 1) and (t(9) = 1)
       t$ =  "*** Félicitations ***"
       if Nb_deplacement = 16
          t$ = t$ + "!!! BRAVO ! Vous êtes le champion des champions !!!" + chr$(13)
          t$ = t$ + string$(30," ") + "!!! Vous avez gagné le CHEVAL D'OR !!!"
       else
          if Nb_deplacement < 23
             t$ = "!!! BRAVO ! Vous êtes le champion !!!" + chr$(13)
             t$ = t$ + " Vous pouvez mieux faire !!!" + chr$(13)
             t$ = t$ + "!!! Vous avez gagné le CHEVAL D'ARGENT !!!"
          else
             t$ = "!!! BRAVO ! Vous êtes un champion !!!" + chr$(13)
             t$ = t$ + "Mais vous pouvez améliorer votre score !!!" + chr$(13)
             t$ = t$ + "!!! Vous avez gagné le CHEVAL DE BRONZE !!!"
          end_if
       end_if
       message t$
    end_if
end_sub
rem ============================================================================
SUB AutoRun()
    dim_local i
    restore : Init()
    for i = 1 to 16
        read depart : read arrivee
        depart = depart * 10 : arrivee = arrivee * 10
        deplacer() : wait 1000 : ' delai à adapter
    next i
END_SUB
rem ============================================================================
data 9,4,7,2,1,6,3,8,6,7,4,3,2,9,8,1,3,8,1,6,8,1,9,4,7,2,6,7,4,3,2,9
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: re   cavaliers - Le jeu des quatre cavaliers  EmptySam 21 Juin 2014 - 17:38

Me voilà avec le cheval d' argent !
 lol! 

cavaliers - Le jeu des quatre cavaliers  <a href=cavaliers - Le jeu des quatre cavaliers  Captur55" />



Mais pourquoi cette phrase :  
" Vous pouvez mieux faire !!!"
qui me rappelle douloureusement ces études qui m' ont poursuivi ?....
 lol! 



Bon cette petite phrase m' a blessée dans mon orgueil...


cavaliers - Le jeu des quatre cavaliers  Captur56

Merci Papydall pour ces quelques minutes d' évasion...
 Laughing
Revenir en haut Aller en bas
Contenu sponsorisé





cavaliers - Le jeu des quatre cavaliers  Empty
MessageSujet: Re: Le jeu des quatre cavaliers    cavaliers - Le jeu des quatre cavaliers  Empty

Revenir en haut Aller en bas
 
Le jeu des quatre cavaliers
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Casse-tête : Echanger les positions des cavaliers

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: