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 | 
 

 Saute-mouton

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
papydall

avatar

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

MessageSujet: Saute-mouton   Lun 20 Mai 2013 - 4:30

Salut tout le monde


Jeu de Saute Mouton
Sur une ligne de NB cases, on place, à la suite et en partant de la gauche, des pions noirs puis des pions rouges séparés par une case vide unique. On pose autant de pions noirs que de pions rouges.
But du jeu :
Déplacer tous les pions rouges vers la gauche (respectivement tous les pions noirs vers la droite), la case vide occupant à la fin du jeu la case du milieu de la configuration comme au départ.
Exemple :
configuration initiale :

NNNNN RRRRR
configuration finale gagnante :
RRRRR NNNNN

Essayez d’abord avec un petit nombre de pions (3 ou 5 par exemple), pour vous entrainez et pour découvrir la stratégie à appliquer.
Vous pouvez, ensuite, augmenter ce nombre en modifiant Nb_Max_Pions en ligne 18

Le code est suffisamment documenté pour comprendre le pourquoi du comment.
Si ce petit casse-tête vous donne du fil à retordre, alors ..... retordez le fil c’est tout ou tordez lui le cou ( jetez ce programme à la corbeille !) Laughing

Code:
' ******************************************************************************
'                          SAUTE_MOUTON.BAS
'                            PAR PAPYDALL
' ******************************************************************************
Jeu()
end
' ******************************************************************************
' Algorithme jeu de saute mouton
SUB Jeu()
      Declaration()
      Init_Plateau()
      Affiche_Plateau()
END_SUB
' ******************************************************************************
' Déclaration du label, des variables globales et initialisation de la FORM 0
SUB Declaration()
    label clic
    DIM Nb_Max_Pions : Nb_Max_Pions = 6 : ' Nombre maximum de pions d'une couleur
    DIM Nb_Pions : ' nombre de pions d'une couleur
    dim c$,i,valid
    width 0,200 + Nb_Max_Pions * 90 : height 0,300 : left 0,100 : top 0,100
END_SUB
' ------------------------------------------------------------------------------
' Initialisation du plateau du jeu
SUB Init_Plateau()
    dim_local i,tex$
    for i = 1 to 2 * Nb_Max_Pions + 1
        edit i : top i ,100 : left i,30 + 40*i : width i,40 : height i,25
        color i,200,250,250 : font_size i,12 :font_name i,"Webdings"
        on_click i,clic
    next i
    button 100  : top 100,200 : left 100,Nb_Max_Pions * 20
      caption 100 ,"Rejouer" : on_click 100, clic : inactive 100
    button 200  : top 200,200 : left 200,width(0) - 180
      caption 200 ,"Quitter" : on_click 200,clic
    alpha 300 : top 300,10: left 300,50: font_bold 300 : font_color 300,0,0,255
    font_size 300,10
    tex$ = "Déplacer tous les pions rouges vers la gauche" + chr$(13)
    tex$ = tex$ + "(respectivement tous les pions noirs vers la droite)," + chr$(13)
    tex$ = tex$ + "la case vide occupant à la fin du jeu la case du"+chr$(13)
    tex$ = tex$ + "milieu de la configuration comme au départ."
    caption 300,tex$
    button 400 : top 400, 200 : left 400,width(0)/2-50 : caption 400,"Info"
    tex$ = ""
    tex$ = tex$ + "Les pions noirs ne peuvent se déplacer que vers la droite"+chr$(13)
    tex$ = tex$ + "les pions rouges ne peuvent se déplacer que vers la gauche" + chr$(13)
    tex$ = tex$ + "* Un pion noir peut être déplacé à droite dans la case vide :" +chr$(13)
    tex$ = tex$ + " - si la case vide est juste à droite de ce pion" + chr$(13)
    tex$ = tex$ + " - s'il lui suffit de sauter par dessus un seul pion rouge," + chr$(13)
    tex$ = tex$ + "  c'est-à-dire si entre la case vide et lui il n'y a qu'un seul pion rouge."+chr$(13)+chr$(13)
    tex$ = tex$ + "* Un pion rouge peut être déplacé à gauche dans la case vide :" + chr$(13)
    tex$ = tex$ + " - si la case vide est juste à gauche de ce pion" + chr$(13)
    tex$ = tex$ + " - s'il lui suffit de sauter par dessus un seul pion noir," + chr$(13)
    tex$ = tex$ + "  c'est-à-dire si entre la case vide et lui il n'y a qu'un seul pion noir."+chr$(13)+chr$(13)
    tex$ = tex$ + "  !!!!! BON DIVERTISSEMENT !!!!!"
    on_click 400,clic
    form 500 : top 500,300 : left 500,200 : width 500,450 : caption 500,"Règles du jeu"
    alpha 501 : parent 501,500
    top 501,20 :  left 501,20 : font_bold 501
    caption 501,tex$ : hide 500
END_SUB
' ******************************************************************************
' Affichage du plateau du jeu
SUB Affiche_Plateau()
    dim_local i
' Affichage des pions noirs
    for i = 1 to Nb_Max_Pions : : font_color i,0,0,0 :text i,"8" : next i
' Affichage des pions rouges
    for i = Nb_Max_Pions+2 to 2*Nb_Max_Pions+1 : font_color i,255,0,0 :text i,"7" : next i
' Affichage de la case vide
    text Nb_Max_Pions + 1, ""
' aucun pion n'est encore déplacé
    Nb_Pions = 0
END_SUB
' ******************************************************************************
' Gestion des click
Clic:
  i = number_click
  if i = 400 then show 500 : ' Informations
  if i = 200 then fin()    : ' Sortie du programme
  if i = 100 then Affiche_Plateau() : ' Affichage du plateau du jeu
  if i < 100 then Jouer_Un_Coup()  : ' On tente un coup
return
' ******************************************************************************
' ------------------------------------------------------------------------------
' Algorithme principal du jeu SAUTE-MOUTON
' Méthodologie pour résoudre le problème :
' * Faire avancer un pion noir
' * Puis 2 pions rouges
' * Puis 3 pions noirs
' * puis 4 pions rouges
' * et ainsi de suite ...
' La même démarche est valable si on debute avec un pion rouge
' ------------------------------------------------------------------------------
SUB Jouer_Un_Coup()
  valid = 0 : ' le coup à jouer n'est pas encore valide
  i = number_click : ' sur quel pion l'utilisateur a cliqué ?
  font_name i,"webdings"
  c$ = text$(i) : ' sauvegarder le symbole du pion selectionné
  if c$ = "7"  : ' Pion rouge ?
    if text$(i-1) = ""  : ' si oui, case_à_gauche vide ?
        font_color i-1, 255,0,0 : text i-1,c$  : ' Si oui, déplacement_à_gauche
        valid = 1 : ' le coup est valide
        text i,"" : ' l'ancienne position devient vide
    else  : ' La case à gauche n'est pas vide
        if (text$(i-1) = "8") and (text$(i-2) = "") : ' case gauche noire et case suivante vide ?
          font_color i-2,255,0,0 : text i-2,c$ : ' Si oui,déplacement_saut_à_gauche
          valid = 1 : text i,""
        end_if
    end_if

  else  : ' ce n'est un pion rouge
    if c$ = "8" : ' pion noir ?
        if text$(i+1) = "" : ' si oui, case_à_droite est vide ?
          font_color i+1,0,0,0 : text i+1,c$ : ' si oui, déplacement_à_droite
          text i, "" : valid = 1
        else  : ' la case à droite n'est pas vide
          if (text$(i+1) = "7") and (text$(i+2) = "") : ' case_droite_rouge et case_suivante vide ?
              font_color i+2,0,0,0 : text i+2,c$ : ' si oui, déplacement_saut_à_droite
              valid = 1 : text i,""
          end_if
        end_if
    end_if
  end_if
  if valid > 0  : ' le coup est-il valide ?
    Nb_Pions = Nb_Pions + 1 : ' Cumul des coups valides
' Pour résoudre le problème, on doit faire (Nb_Max_Pions)*(Nb_Max_pions + 2)
' mouvements dont (Nb_Max_Pions)*(Nb_Max_Pions) sauts et
' (2 * Nb_Max_Pions) translations
    if (Nb_Pions = Nb_Max_Pions *(NB_Max_pions + 2)) and (text$(NB_Max_Pions + 1) = "") then felicitation()
  else  : ' le coup tenté n'est pas valide
    message "Coup interdit"
  end_if
  if valid > 0 then active 100
END_SUB
' ******************************************************************************
' Solution trouvée
SUB Felicitation()
    message "!!! Bravo!!! VOUS ETES UN CHAMPION !!!"
    Affiche_Plateau()
END_SUB
' ******************************************************************************
' On arrête tout, ça fait mal à la tête
SUB Fin()
    terminate
END_SUB
' ******************************************************************************

A l’aide :

L’algorithme utilisé s’appelle justement « algorithme de saute-mouton ».
J’ai voulu réaliser le programme en utilisant, non pas des caractères pour représenter les pions, mais des SPRITEs schématisant des moutons ou autres animaux (chevaux, grenouilles ... et pourquoi pas des lapins !!!)
Comme je ne suis pas « doué » en SPRITEs, si quelqu’un veut bien perfectionner le programme (en introduisant des SPRITEs), qu’il le fasse !
L’algorithme utilisé ne s’y oppose pas.

Amusez-vous bien !


Dernière édition par papydall le Lun 20 Mai 2013 - 20:43, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
pascal10000

avatar

Nombre de messages : 666
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 11:18

sur internet il y a un jeu du même genre avec les grenouilles
et je n'ai jamais trouvé la solution
ce jeu me prend la tête
mais il est bien fait même si je ne l'ai pas résolu
bravo j'en suis sur que d'autre vont l’essayer
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 12:14

Bonjour Pascal 10000 et merci pour ta reponse.
Oui, la plupart des jeux ont déjà été faits sous une forme ou sous une autre.
Moi, je n’invente rien !
Je mets parfois, des algorithmes en application, en essayant de les coder en PANORAMIC.

Quant à la solution, une piste est tout de même donnée dans les lignes REM de la SUB Jouer_Un_Coup().
On peut passer plusieurs heures( !) à patauger sans trouver la solution.
Mais lorsqu’on a compris la méthode, ça devient un jeu d’enfant (ou plutôt un jeu de saute-mouton) !

Tout de même, je conseille à d’autres (qui se reconnaissent) de prévoir quelques boîtes de Doliprane ou équivalent (Paracétamol) ! Laughing


Dernière édition par papydall le Lun 20 Mai 2013 - 12:22, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
bignono

avatar

Nombre de messages : 1109
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 12:18

Bonjour Papydall Smile
Comme casse tête ya pas mieux. J'ai vu aussi le même jeu avec des grenouilles, et le truc, je crois c'est de placer toutes les grenouilles alternativement avant de les faire passer de l'autre coté. C'est à dire: RNRNRNRN, etc.. pour reprendre ton exemple. Mais je ne sais pas si ton nombre de pion "6" est bon. Il me semble qu'il faut un chiffre impair de pion, mais je me trompe peut-être.
A+ Wink Wink Wink
PS on s'est croisé Papydall
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 20 Mai 2013 - 12:37

Je me suis reconnu, mais pour info, j' ai réussi à résoudre celui en flash sur le net... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 12:42

C'est assez facile. Tu avances un mouton et tu saute (par exemple les noirs) au dessus depuis l'autre côté.
Tu avances un rouge et tu saute au dessus avec le noir que tu as bougé avant, puis tu fais avancer tous les noirs que tu peux
Tu fais avancer un noir. Puis tu sautes au dessus des noirs avec les rouges et tu avance un rouge etc ...
A la fin tu avances le pion devant lequel il n'y a rien (dans notre cas, le rouge) puis tu fais sauter tous les rouges.
Tu avances le dernier noir d'une case et tu fais sauter tous les autres noirs ... jusqu'à ce que tu gagnes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 12:46

Bonjour Bignono.
Merci pour ta réponse.
Bignono a écrit:
Mais je ne sais pas si ton nombre de pion "6"est bon. Il me semble qu'il faut un chiffre impair de pion, mais je me trompe peut-être.
On peut résoudre ce problème avec n’importe quel nombre (pair, impair).
Quelque soit le nombre N, on fera N *(N + 2) mouvements dont N*N sauts et 2*N translations.
Soit pour N = 6, Le nombre total de mouvements sera : 6*(6+2) = 48 mouvements, repartis comme ceci :
6 * 6 = 36 sauts et 2*6 = 12 translations

Je viens à l’instant d'essayer avec 10 pions, et je suis parvenu à la solution aussi rapide qu’un grand ! Laughing
Essayez, essayez ! Ça ne doit pas faire trop de mal !!!! sunny

Ygeronimi et Jicehel, on s'est croisé!

@Ygeronimi
Voilà bien quelqu'un de reconnaissant!

EDIT : Personne ne veut SPRITIFIER !!! mon programme ?!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 20 Mai 2013 - 13:28

Bon, aller, j' essaye...

Edit :

Je vais essayer de trouver de jolis mouton d' abord...

SPECIAL PAPYDALL :

J' ADORE !!!!

Merci papydall Laughing Laughing Laughing Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 20 Mai 2013 - 19:22

Un premier jet !

Jeu de saute mouton.zip

juste graphique, pas de fonctions !

Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 20 Mai 2013 - 20:29

Avec les fonctions !

Jeu de saute mouton.zip

Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 20:31

Sympa Ygeronimi. Pas eu le temps de m'y mettre perso, mais je vais essayer cette nuit de proposer un truc aussi
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 20 Mai 2013 - 20:49

Avec les nouvelles commandes, on pourra faire des mouton animés
ce sera encore plus sympa ! Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 21:03

Merci Ygeronimi
Ton code est infiniment plus joli que ma Solution troué !!
Attendons de voir celle de Jicehel.
J’ai un pré-sentiment qu’ il y aura du beau travail !

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 21:24

Effectivement avec des vrais moutons c'est plus beau.

@Papydall

Si tu cherches d'où vient ton inspiration, c'est ici: http://panoramic.free-boards.net/t2792-passer-les-grenouilles-sur-l-autre-rive.

Avec 2x4 moutons, c'est tout de même plus compliqué.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 20 Mai 2013 - 21:35

J' ai rajouté une petite phrase d' aide... Laughing
Le lien est le même.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 21:37

@Jean Claude
Essaye 2*10 moutons : ça pourrait rajeunir !!!
Et si tu n’arrives pas à trouver la solution, essaye alors 2*10 grenouilles : elles sautent mieux ! Et ça ira beaucoup plus vite. Laughing

PS : Pour l’inspiration, oui, c’est ça.
Hé, à propos, j’attends toujours ton jeu : prends ton temps si tu veux, mais, où en es-tu justement ?



@Ygeronimi.
J’étudierais ton code, à tête reposée, le moment venu, pour apprivoiser ces SPRITEs.
Avec seulement 4 petits moutons : c’est trop facile !
Essaye de modifier le code pour pouvoir choisir le nombre de moutons voulus (par exemple entre 3 et 10 ou plus( ?))
Tu as maintenant de quoi t’occuper.
Et quand, Jicehel se mettra dans la partie, ça sera bien de réaliser un jeu à plusieurs !
Si d’autres veulent apporter leur grain de sel, ça sera sympa.


Dernière édition par papydall le Lun 20 Mai 2013 - 22:05, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 21:57

Bravo Ygeronimi, j'essayerais d'en faire une version aussi ce soir, mais le tien est vraiment très bien.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 20 Mai 2013 - 22:13

Vu le nombre de possibilités de déplacements ( non, +1 , +2) et (non ,-1,-2)
c' est assez facile.

Mais ce qui serait sympa c'est de voir le saut dans son détail mais je n'ai pas trouvé
de dessin assez sympa même avec des grenouilles.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Saute-mouton   Lun 20 Mai 2013 - 22:25

@Papydall,
Mon jeu que tu attends n'est pas tout à fait un jeu. il s'agit d'un tableau de marquage....
Il est bien avancé et je pense que sous quelques jours je vais pouvoir le publier.
Et il y aura du boulot pour ceux qui voudrons l'améliorer du point de vue animations.

Patiente et longueur de temps....

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Mar 21 Mai 2013 - 1:15

Merci Jean Claude pour ta réponse.
Jean Claude a écrit:
Patiente et longueur de temps....
Sincèrement, je ne connais pas cette expression !


Dernière édition par papydall le Mar 21 Mai 2013 - 2:15, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



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

MessageSujet: Re: Saute-mouton   Mar 21 Mai 2013 - 1:24

citation: "patience et longueur de temps font plus que force ni que rage"
Je crois que c'est dans une fable de La Fontaine, mais je ne parierais pas ma paye...

PS Exact, dans "Le Lion et le Rat"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Mar 21 Mai 2013 - 2:14

Le Lion et le Rat

....
....

Sire Rat accourut, et fit tant par ses dents
Qu'une maille rongée emporta tout l'ouvrage.
Patience et longueur de temps
Font plus que force ni que rage.

Jean de la Fontaine

@JL35
Dommage que tu n'as pas parié ta paye ! Rolling Eyes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



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

MessageSujet: Re: Saute-mouton   Mar 21 Mai 2013 - 10:53

Oui, mais tu n'aurais pas voulu jouer !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 22 Mai 2013 - 0:17

J' ai un souci, j'ai voulu rajouter un mode " Aller / retour "
pour ce faire, j' ai voulu charger des moutons dans le bon sens... Laughing

donc mes jaunes, et mes roses devait se retourner en arrivant au bout de la phase "Aller"
et pour cela je remplace l'image d' un mouton qui la tête vers la droite par
un mouton qui à la tête vers la gauche et de la même couleur.

mais voilà...
Code:
' ******************************************************************************
' *                                  JEU                                      *
' *                                  DE                                      *
' *                              SAUTE MOUTON                                *
' *                                  -------                                  *
' *                                  PAR                                      *
' *                                Y.GERONIMI                                  *
' *                      SUR UNE SUGGESTION DE PAPYDALL                      *
' ******************************************************************************
variables()
constantes()
labels()
init_dll()
gui()


on_close 0,close
end

'  -DECLARATIONS

  Sub variables()
      dim Clic%
      dim SP%(10),C%,M%,dplct% ,Mode%
  End_Sub
 
  Sub constantes()
      dim KGF$
      KGF$    = dir_current$+"\KGF.dll"
      dim mouton1$,mouton2$,scene$,vide$,help$,reload$,exit$,help2$,reload2$,exit2$
      dim mouton1b$,mouton2b$
      scene$  = dir_current$+"\pict\scene.bmp"
      vide$    = dir_current$+"\pict\vide.bmp"
      mouton1$ = dir_current$+"\pict\mouton1.bmp"
      mouton2$ = dir_current$+"\pict\mouton2.bmp"
      mouton1b$= dir_current$+"\pict\mouton1b.bmp"
      mouton2b$= dir_current$+"\pict\mouton2b.bmp"
      help$    = dir_current$+"\img\On_HelpButton.jpg"
      help2$  = dir_current$+"\img\Out_HelpButton.jpg"
      reload$  = dir_current$+"\img\On_ChangeButton.jpg"
      reload2$ = dir_current$+"\img\Out_ChangeButton.jpg"
      exit$    = dir_current$+"\img\On_OutButton.jpg"
      exit2$  = dir_current$+"\img\Out_OutButton.jpg"
  End_Sub
 
  Sub labels()
      label Clic,Close
  End_Sub
 
'  -INITIALISATION DLL

  Sub init_dll()
      KGF_Initialize(KGF$)
  End_Sub
 
'  -INTERFACE

  Sub gui()
      dim_local x%
      O_Form(0,0,1,0,0,250,516,"Jeu de Saute Mouton"):font_name 0,"arial"
      O_Scene2D(1,0,1,50,25,50,450,1):file_load 1,scene$:cursor_point 1
      for x%=1 to 9
        sprite x% :sprite_position x%,0,0
      next x%
      for x%=1 to 4
        sprite_file_load x%,mouton1$
      next x%
      sprite_file_load 5,vide$
      for x%=6 to 9
        sprite_file_load x%,mouton2$
      next x%
      init_SpritePosition()
      O_Alpha(3,0,1,110,150,0,0,""):font_bold 3:font_color 3,255,0,0
     
      O_Button_Picture(100,7001,0,0,1,Height(0)-118,220,25,25,help$,help2$)
      hint 100,"Aide"
      O_Button_Picture(102,7003,0,0,1,Height(0)-118,255,25,25,reload$,reload2$)
      hint 102,"Remise à Zéro"
      O_Container(4,0,0,height(0)-93,5,55,width(0)-26,"")
      O_Alpha(5,4,1,8,10,0,0,"Faites passer les moutons d'un coté à un autre ")
      O_Alpha(6,4,1,23,10,0,0,"Faites avancer un mouton de plus que celui de la couleur précédente")
      O_Alpha(7,4,1,38,10,0,0,"Mode Aller / retour, faites le plus de croisements possibles...")
      O_Button_Picture(104,7005,4,0,1,Height(4)-28,width(4)-28,25,25,exit$,exit2$)
      O_Check(108,0,1,10,10,0,150,"Mode : Aller Simple"):on_click 108,clic

      O_Alpha(106,0,0,10,300,0,0,"Nombre de croisement :")
      O_Edit(107,0,0,8,430,0,40,string$(4," ")+"0",0):font_name 107,"courier new":font_bold 107
     
     
  End_Sub
 
'  -FONCTIONS
  Clic:
      Clic%=Number_Click
      Select Clic%
      '  Boutons visibles
        case 1  :Move_mouton()
        case 100 :Help_Jeu()
        case 102 :Init_Jeu()
        case 104 :Close_help()
        case 108 :Mode()
      '  Boutons invisibles
        case 7001: show 100
        case 7002: hide 100
        case 7003: show 102
        case 7004: hide 102
        case 7005: show 104
        case 7006: hide 104
      End_Select
  return
 
  Close:
      ClickClearHook(0)
  return
 
  Sub Help_Jeu()
      show 4
  End_Sub
 
  Sub Init_Jeu()
      init_SpritePosition()
      caption 3,""
  End_Sub

  Sub Close_help()
      hide 4
  End_Sub
 
  Sub Mode()
      if checked(108)=1
        Caption 108,"Mode : Aller / Retour"
        Mode%=2
        show 106
        show 107
      else
        Caption 108,"Mode : Aller Simple"
        Mode%=1
        hide 106
        hide 107
      end_if
  End_Sub

'  initialisation des emplacements des moutons
  Sub init_SpritePosition()
      dim_local x%,T%,L%
      T%=0: L%=-50
      for x%=1 to 9
        L%=L%+50
        sprite_position x%,L%,T%
        SP%(x%)=x%
      next x%
  End_Sub

'  déplacement d'un mouton______________________________________________________
  Sub Move_Mouton()
      SelectMouton()
      if dplct%=1
        DplaceGD()
      else
        DplaceDG()
      end_if
      verif_victory()
  End_Sub
 
'  détection du sprite cliqué
  Sub SelectMouton()
      dim_local x%
      x%=mouse_x_position(1)
      if x% <49 : C%=1 :End_if
      if x% >49  And x%<99 :C%=2 :End_if
      if x% >99  And x%<150 :C%=3 :End_if
      if x% >149 And x%<200 :C%=4 :End_if
      if x% >199 And x%<250 :C%=5 :End_if
      if x% >249 And x%<300 :C%=6 :End_if
      if x% >299 And x%<350 :C%=7 :End_if
      if x% >349 And x%<400 :C%=8 :End_if
      if x% >399 And x%<450 :C%=9 :End_if
     
      M%=SP%(C%)
      if M%>0 and M%<5 :dplct%=1 :End_if
      if M%>5 and M%<10:dplct%=2 :End_if
  End_Sub
 
'  déplacement des moutons de la gauche vers la droite (jaunes)
  Sub DplaceGD()
      dim_local x% ,posSP5% ,posSPx%
      If C%<9
      If SP%(C%+1)<>5 and SP%(C%+2)<>5
        Caption 3,"Déplacement impossible"
      Else
        if SP%(C%+1)=5
            x%=SP%(C%)
            posSP5% =sprite_x_position(5)  :posSP5% = posSP5%-50
            posSPx% =sprite_x_position(x%) :posSPx% = posSPx%+50
            SP%(C%)=5 :SP%(C%+1)=x%
            sprite_x_position x%,posSPx%
            sprite_x_position 5,posSP5%
            Caption 3,""
        Else
            if SP%(C%+2)=5 and SP%(C%+1)<5
              Caption 3,"Déplacement impossible"
            Else
              x%=SP%(C%)
              posSP5% =sprite_x_position(5)  :posSP5% = posSP5%-100
              posSPx% =sprite_x_position(x%) :posSPx% = posSPx%+100
              SP%(C%)=5 :SP%(C%+2)=x%
              sprite_x_position x%,posSPx%
              sprite_x_position 5,posSP5%
              Caption 3,""
            End_if
        End_if
      End_if
      Else
        Caption 3,"Déplacement impossible"
      End_if
  End_Sub
 
'  déplacement des moutons de la droite vers la gauche (roses)
  Sub DplaceDG()
      dim_local x% ,posSP5% ,posSPx%
      if C%>1
      if SP%(C%-1)<>5 and SP%(C%-2)<>5
        Caption 3,"Déplacement impossible"
      Else
        if SP%(C%-1)=5
            x%=SP%(C%)
            posSP5% =sprite_x_position(5)  :posSP5% = posSP5%+50
            posSPx% =sprite_x_position(x%) :posSPx% = posSPx%-50
            SP%(C%)=5 :SP%(C%-1)=x%
            sprite_x_position x%,posSPx%
            sprite_x_position 5,posSP5%
            Caption 3,""
        Else
            IF SP%(C%-2)=5 and SP%(C%-1)>5
              Caption 3,"Déplacement impossible"
            Else
              x%=SP%(C%)
              posSP5% =sprite_x_position(5)  :posSP5% = posSP5%+100
              posSPx% =sprite_x_position(x%) :posSPx% = posSPx%-100
              SP%(C%)=5 :SP%(C%-2)=x%
              sprite_x_position x%,posSPx%
              sprite_x_position 5,posSP5%
              Caption 3,""
            End_if
        End_if
      End_if
      Else
        Caption 3,"Déplacement impossible"
      End_if
  End_Sub
 
  Sub Verif_Victory()
      dim_local x%,V%,score$
      V%=0
      for x%=1 to 4 : if SP%(x%)<>x%+5 :V%=0 :Exit_for:else:V%=V%+1:end_if:next x%
      for x%=6 to 9 : if SP%(x%)<>x%-5 :V%=0 :Exit_for:else:V%=V%+1:end_if:next x%
      if V%=8
        if mode%=2
            score$=str$(val(text$(107))+1)
            text 107,string$(5-len(score$)," ")+score$
            for x%=1 to 4:Sprite_file_load x%,mouton1b$:next x%
            for x%=6 to 9:Sprite_file_load x%,mouton2b$:next x%
        else
            Message "BRAVO !!! VOUS ETES UN CHAMPION !!!"
        end_if
      end_if
  end_sub
 
'  -INCLUDES

  #include "KGF_SUB.bas"
  #include "OBJ_SUB.bas"

affraid affraid affraid affraid

cela se passe en 261 et 262
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Mer 22 Mai 2013 - 0:58

J’exécute ton dernier code : erreur : call of unknown Sub. Line 84
Je valide l’erreur et je joue.
L’erreur c’est parce que dans OBJ_SUB .BAS, l’objet CKECK n’est pas défini.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: Saute-mouton   

Revenir en haut Aller en bas
 
Saute-mouton
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» HAPPINESS ◮ Ne jamais jouer à saute-mouton avec une licorne.
» Saute-mouton
» Stefnini ou l’histoire d’un mouton complètement allumé...
» [NUKE] Camera Mapping qui flick ou saute
» Pixellisation de l'image, son qui saute

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: