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
» demande explication KGF pour imprimer en mm
Le pousse-pousse Emptypar lepetitmarocain Aujourd'hui à 12:55

» Petit passage furtif
Le pousse-pousse Emptypar Froggy One Hier à 14:26

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

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

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

» Comment télécharger panoramic?
Le pousse-pousse Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
Le pousse-pousse Emptypar Klaus Dim 3 Mar 2024 - 9:59

» Tangram-Toukaré
Le pousse-pousse Emptypar jjn4 Mer 28 Fév 2024 - 18:12

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Le pousse-pousse Emptypar jjn4 Mer 28 Fév 2024 - 18:09

» KGF_dll - nouvelles versions
Le pousse-pousse Emptypar Klaus Mer 28 Fév 2024 - 17:01

» Mes souhaits d'amélioration de Panoramic.
Le pousse-pousse Emptypar Pedro Lun 26 Fév 2024 - 18:12

» Testez-votre-QI
Le pousse-pousse Emptypar jjn4 Dim 25 Fév 2024 - 17:12

» Utilisation d'Élip
Le pousse-pousse Emptypar jjn4 Sam 24 Fév 2024 - 18:33

» Récapitulatif ludothèque panoramic jjn4
Le pousse-pousse Emptypar jjn4 Sam 24 Fév 2024 - 18:11

» Générateur de mots de passe
Le pousse-pousse Emptypar mindstorm Mar 20 Fév 2024 - 20:09

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mars 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier
Le Deal du moment : -20%
Pack Gigabyte Ecran PC Gamer 27″ LED M27Q ...
Voir le deal
749 €

 

 Le pousse-pousse

Aller en bas 
+5
Jicehel
papydall
Yannick
Minibug
Klaus
9 participants
AuteurMessage
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Le pousse-pousse   Le pousse-pousse EmptyDim 16 Mar 2014 - 10:41

Voici un petit jeu, très ancien mais toujours amusant: le pousse-pousse. C'est un jeu dans lequel un a un carré découpé en 16 cases dans le désordre, dont une est manquante. Et il faut pousser les cases en utilisant la case vide, pour remettre le tout dans l'ordre.

Le programme utilise par défaut une série de chiffres de 1 à 15. Le but est de les remettre dans l'ordre. Un menu permet de rejouer ou de charger une de vos images à la place de la série de chiffres. Le chargement est fait avec des fonctions de KGF.dll. Si l'on veut s'en tenir aux seuls numéros, on peut désactiver l'utilisation de la DLL et on en revient à un code en Panoramic pur.

Pour la petite histoire: l'interface visuel et la structure du programme sont générés par mon IDE.

Code:
' C:\Documents and Settings\Klaus\Mes documents\Mes projets Delphi\IDE\15_puzzle\15_puzzle.bas

' poussse-pousse.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 Main_menu_1% : Main_menu_1% = 2
  dim Sub_menu_1% : Sub_menu_1% = 3
  dim Sub_menu_2% : Sub_menu_2% = 4
  dim Sub_menu_3% : Sub_menu_3% = 5
  dim Sub_menu_4% : Sub_menu_4% = 6
  dim Sub_menu_5% : Sub_menu_5% = 7
  dim Image_1% : Image_1% = 8
  dim Image_2% : Image_2% = 9
  dim Image_3% : Image_3% = 10
  dim Image_4% : Image_4% = 11
  dim Image_5% : Image_5% = 12
  dim Image_6% : Image_6% = 13
  dim Image_7% : Image_7% = 14
  dim Image_8% : Image_8% = 15
  dim Image_9% : Image_9% = 16
  dim Image_10% : Image_10% = 17
  dim Image_11% : Image_11% = 18
  dim Image_12% : Image_12% = 19
  dim Image_13% : Image_13% = 20
  dim Image_14% : Image_14% = 21
  dim Image_15% : Image_15% = 22
  dim Panel_1% : Panel_1% = 23
  dim Picture_1% : Picture_1% = 24
  dim Picture_2% : Picture_2% = 25
  dim Picture_3% : Picture_3% = 26
  dim Picture_4% : Picture_4% = 27
  dim Picture_5% : Picture_5% = 28
  dim Picture_6% : Picture_6% = 29
  dim Picture_7% : Picture_7% = 30
  dim Picture_8% : Picture_8% = 31
  dim Picture_9% : Picture_9% = 32
  dim Picture_10% : Picture_10% = 33
  dim Picture_11% : Picture_11% = 34
  dim Picture_12% : Picture_12% = 35
  dim Picture_13% : Picture_13% = 36
  dim Picture_14% : Picture_14% = 37
  dim Picture_15% : Picture_15% = 38
  dim Picture_16% : Picture_16% = 39
  dim Open_dialog_1% : Open_dialog_1% = 40
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%, 678
  Height no%, 528
  Caption no%, "Pousse-Pousse"
 
' objet supprimé
  no% = no% + 1

' Main_menu_1
  no% = no% + 1
  Main_menu no%
 
' Sub_menu_1
  no% = no% + 1
  Sub_menu no%
  Parent no%,2
  Caption no%, "Jeu"
 
' Sub_menu_2
  no% = no% + 1
  Sub_menu no%
  Parent no%,3
  Caption no%, "Nouveau"
  On_click no%,nouveau
 
' Sub_menu_3
  no% = no% + 1
  Sub_menu no%
  Parent no%,3
  Caption no%, "Sortir"
  On_click no%,sortir
 
' Sub_menu_4
  no% = no% + 1
  Sub_menu no%
  Parent no%,2
  Caption no%, "Images"
 
' Sub_menu_5
  no% = no% + 1
  Sub_menu no%
  Parent no%,6
  Caption no%, "Charger"
  On_click no%,charger
 
' Image_1
  no% = no% + 1
  Image no%
 
' Image_2
  no% = no% + 1
  Image no%
 
' Image_3
  no% = no% + 1
  Image no%
 
' Image_4
  no% = no% + 1
  Image no%
 
' Image_5
  no% = no% + 1
  Image no%
 
' Image_6
  no% = no% + 1
  Image no%
 
' Image_7
  no% = no% + 1
  Image no%
 
' Image_8
  no% = no% + 1
  Image no%
 
' Image_9
  no% = no% + 1
  Image no%
 
' Image_10
  no% = no% + 1
  Image no%
 
' Image_11
  no% = no% + 1
  Image no%
 
' Image_12
  no% = no% + 1
  Image no%
 
' Image_13
  no% = no% + 1
  Image no%
 
' Image_14
  no% = no% + 1
  Image no%
 
' Image_15
  no% = no% + 1
  Image no%
 
' Panel_1
  no% = no% + 1
  Panel no%
  Top no%, 24
  Left no%, 15
  Width no%, 630
  Height no%, 440
  Caption no%, ""
  Hint no%, ""
  color no%,0,0,0
 
' Picture_1
  no% = no% + 1
  Picture no%
  Top no%, 9
  Left no%, 12
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move
 
' Picture_2
  no% = no% + 1
  Picture no%
  Top no%, 9
  Left no%, 165
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_3
  no% = no% + 1
  Picture no%
  Top no%, 9
  Left no%, 318
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_4
  no% = no% + 1
  Picture no%
  Top no%, 9
  Left no%, 471
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_5
  no% = no% + 1
  Picture no%
  Top no%, 111
  Left no%, 12
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_6
  no% = no% + 1
  Picture no%
  Top no%, 111
  Left no%, 165
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_7
  no% = no% + 1
  Picture no%
  Top no%, 111
  Left no%, 318
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_8
  no% = no% + 1
  Picture no%
  Top no%, 111
  Left no%, 471
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_9
  no% = no% + 1
  Picture no%
  Top no%, 213
  Left no%, 12
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_10
  no% = no% + 1
  Picture no%
  Top no%, 213
  Left no%, 165
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_11
  no% = no% + 1
  Picture no%
  Top no%, 213
  Left no%, 318
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_12
  no% = no% + 1
  Picture no%
  Top no%, 213
  Left no%, 471
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_13
  no% = no% + 1
  Picture no%
  Top no%, 315
  Left no%, 12
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_14
  no% = no% + 1
  Picture no%
  Top no%, 315
  Left no%, 165
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move

' Picture_15
  no% = no% + 1
  Picture no%
  Top no%, 315
  Left no%, 318
  Width no%, 150
  Height no%, 100
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  on_click no%,move
 
' Picture_16
  no% = no% + 1
  Picture no%
  Top no%, 315
  Left no%, 318
  Width no%, 600
  Height no%, 400
  Parent no%,23
  font_size no%,16
  font_bold no%
  Hint no%, ""
  hide no%

' Open_dialog 1
  no% = no% + 1
  Open_dialog no%
  filter no%,"Images|*.jpg;*.bmp"
 
end_sub
 
sub initialisations()
  positions_initiales%(1,1) = left(picture_1%)
  positions_initiales%(1,2) = top(picture_1%)
  positions_initiales%(2,1) = left(picture_2%)
  positions_initiales%(2,2) = top(picture_2%)
  positions_initiales%(3,1) = left(picture_3%)
  positions_initiales%(3,2) = top(picture_3%)
  positions_initiales%(4,1) = left(picture_4%)
  positions_initiales%(4,2) = top(picture_4%)
  positions_initiales%(5,1) = left(picture_5%)
  positions_initiales%(5,2) = top(picture_5%)
  positions_initiales%(6,1) = left(picture_6%)
  positions_initiales%(6,2) = top(picture_6%)
  positions_initiales%(7,1) = left(picture_7%)
  positions_initiales%(7,2) = top(picture_7%)
  positions_initiales%(8,1) = left(picture_8%)
  positions_initiales%(8,2) = top(picture_8%)
  positions_initiales%(9,1) = left(picture_9%)
  positions_initiales%(9,2) = top(picture_9%)
  positions_initiales%(10,1) = left(picture_10%)
  positions_initiales%(10,2) = top(picture_10%)
  positions_initiales%(11,1) = left(picture_11%)
  positions_initiales%(11,2) = top(picture_11%)
  positions_initiales%(12,1) = left(picture_12%)
  positions_initiales%(12,2) = top(picture_12%)
  positions_initiales%(13,1) = left(picture_13%)
  positions_initiales%(13,2) = top(picture_13%)
  positions_initiales%(14,1) = left(picture_14%)
  positions_initiales%(14,2) = top(picture_14%)
  positions_initiales%(15,1) = left(picture_15%)
  positions_initiales%(15,2) = top(picture_15%)
  positions_initiales%(16,1) = positions_initiales%(12,1)
  positions_initiales%(16,2) = positions_initiales%(15,2)
  lignes%(1) = 1
  lignes%(2) = 1
  lignes%(3) = 1
  lignes%(4) = 1
  lignes%(5) = 2
  lignes%(6) = 2
  lignes%(7) = 2
  lignes%(8) = 2
  lignes%(9) = 3
  lignes%(10) = 3
  lignes%(11) = 3
  lignes%(12) = 3
  lignes%(13) = 4
  lignes%(14) = 4
  lignes%(15) = 4
  colonnes%(1) = 1
  colonnes%(2) = 2
  colonnes%(3) = 3
  colonnes%(4) = 4
  colonnes%(5) = 1
  colonnes%(6) = 2
  colonnes%(7) = 3
  colonnes%(8) = 4
  colonnes%(9) = 1
  colonnes%(10) = 2
  colonnes%(11) = 3
  colonnes%(12) = 4
  colonnes%(13) = 1
  colonnes%(14) = 2
  colonnes%(15) = 3
  x% = width(picture_1%)/2
  y% = height(picture_1%)/2
 
  mixer()
  for i%=1 to 15
    print_target_is picture_1%+i%-1
    print_locate x%,y%
'    print str$(tag%(i%))
    print str$(i%)
  next i%
  l_libre% = 4
  c_libre% = 4
  i_libre% = 16
  dll_on KGF_dll$
end_sub
 
' ********* labels
sub labels()
  label charger
  label nouveau
  label sortir
  label move
 
end_sub
 
' ********* procédures
Sub user_variables()
  '  Placez ici vos variables utilisées dans vos procédures
  dim positions%(15,2)
  dim positions_initiales%(16,2)
  dim mixage%(16), tag%(15),  lignes%(15), colonnes%(15)
  dim l_libre%, c_libre%, i_libre%
  dim i%, x%, y%, soluble%
  dim img$
End_Sub

Sub constantes()
  ' adapter ici le chemin vers KGF.dll
  dim KGF_dll$ : KGF_dll$ = "..\..\KGF\KGF.dll"
End_Sub

Sub nouveau()
  remixer()
 
End_sub

Sub sortir()
  terminate
End_sub

Sub charger()
  dim_local f$, i%, l%, c%
  f$ = file_name$(Open_dialog_1%)
  if f$="_" then exit_sub
  if file_exists(f$)=0 then exit_sub
  img$ = f$
  i% = dll_call1("LoadAnyImageFile",adr(img$))
  i% = dll_call2("ResizePicture",600,400)
  clipboard_paste picture_16%
  for i%=1 to 15
    l% = int((i%+3)/4)
    c% = i% - (l%-1)*4
    2d_target_is picture_16%
    2d_image_copy i%+image_1%-1,(c%-1)*150,(l%-1)*100,c%*150-1,l%*150-1
    2d_target_is i%+picture_1%-1
    2d_image_paste i%+image_1%-1,0,0
  next i%
End_sub

sub move()
  dim_local n%, x%, y%, i%, l%, c%, f%
  dim_local check_bas%, check_haut%, check_gauche%, check_droite%
  n% = number_click - picture_1% + 1
  x% = left(number_click)
  y% = top(number_click)
  for f%=1 to 16
    if positions_initiales%(f%,1)=x%
      if positions_initiales%(f%,2)=y%
        l% = int((f%+3)/4)
        c% = f% - (l%-1)*4
        exit_for
      end_if
    end_if
  next f%
  if l%<4 then check_bas% = 1
  if l%>1 then check_haut% = 1
  if c%<4 then check_droite% = 1
  if c%>1 then check_gauche% = 1
  if check_bas%=1
    if l_libre%=l%+1
      if c_libre%=c%
        swap(n%,f%,l%,c%)
        victoire()
        exit_sub
      end_if
    end_if
  end_if
  if check_haut%=1
    if l_libre%=l%-1
      if c_libre%=c%
        swap(n%,f%,l%,c%)
        victoire()
        exit_sub
      end_if
    end_if
  end_if
  if check_gauche%=1
    if l_libre%=l%
      if c_libre%=c%-1
        swap(n%,f%,l%,c%)
        victoire()
        exit_sub
      end_if
    end_if
  end_if
  if check_droite%=1
    if l_libre%=l%
      if c_libre%=c%+1
        swap(n%,f%,l%,c%)
        victoire()
        exit_sub
      end_if
    end_if
  end_if
end_sub

sub victoire()
  dim_local i%, ok%
  ok% = 1
  for i%=1 to 15
    if left(i%+picture_1%-1)<>positions_initiales%(tag%(i%),1)
      ok% = 0
      exit_for
    end_if
    if top(i%+picture_1%-1)<>positions_initiales%(tag%(i%),2)
      ok% = 0
      exit_for
    end_if
  next i%
  if ok%=1 then message "Bravo ! Vous avez réussi !"
End_sub

sub swap(n%,f%,l%,c%)
  left n%+picture_1%-1,positions_initiales%(i_libre%,1)
  top n%+picture_1%-1,positions_initiales%(i_libre%,2)
  i_libre% = f%
  l_libre% = l%
  c_libre% = c%
end_sub


' ********* procédures spécifiques

sub remixer()
  mixer()
  i_libre% = 16
  l_libre% = 4
  c_libre% = 4
end_sub

sub mixer()
  dim_local i%, j%, n%, f%, n1%, n2%
  for i%=1 to 16
    mixage%(i%) = 0
  next i%
  n% = int(rnd(15))+1
  mixage%(1) = n%
  tag%(1) = 1
  left picture_1%,positions_initiales%(n%,1)
  top picture_1%,positions_initiales%(n%,2)
  for i%=2 to 15
    repeat
      f% = 0
      n% = int(rnd(15))+1
      for j%=1 to i%-1
        if n%=mixage%(j%) then f% = 1
      next j%
    until f%=0
    mixage%(i%) = n%
    tag%(i%) = i%
    left i%+picture_1%-1,positions_initiales%(n%,1)
    top i%+picture_1%-1,positions_initiales%(n%,2)
    if n%=14 then n1% = i%
    if n%=15 then n2% = i%
  next i%

  ' tester si la combinaison est soluble
  test_soluble()
  if soluble%=0
    left n1%+picture_1%-1,positions_initiales%(15,1)
    top n1%+picture_1%-1,positions_initiales%(15,2)
    left n2%+picture_1%-1,positions_initiales%(14,1)
    top n2%+picture_1%-1,positions_initiales%(14,2)
  end_if
end_sub

' parité des permutations:
' 1 2 3 4 5  position idéale
' 1 3 4 5 2  permutation

' 1/2->1/3 1
' 1/3->1/4 1
' 1/4->1/5 1
' 1/5->1/2 0

' 2/3->3/4 1
' 2/4->3/5 1
' 2/5->3/2 0

' 3/4->4/5 1
' 3/5->4/2 0

' 4/5->5/2 0
' On compte les "0". Ici, il y en a 4 donc la permutation est paire.

sub test_soluble()
  dim_local i%, j%, inversions%
  soluble% = 1
  for i%=1 to 14
    for j%=i%+1 to 15
      if tag%(i%)>tag%(j%) then inversions% = inversions% + 1
    next j%
  next i%
  soluble% = 1 - bin_and(inversions%,1)
end_sub

' ********* evenements
charger:
  charger()
  return

nouveau:
  nouveau()
  return

sortir:
  sortir()
  return
 
move:
  move()
  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 Lun 17 Mar 2014 - 17:26, édité 4 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyDim 16 Mar 2014 - 11:40

Un grand classique, mais toujours aussi prenant !

Merci Klaus.

Par contre, a la fin je suis toujours bloqué avec 2 numéros inversé !
Impossible de les remettre en ordre. Bon j'y retourne...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyDim 16 Mar 2014 - 11:50

Oui, ça m'arrive aussi !

J'ai ajouté un petit truc pour détecter si l'image a été remise dans l'ordre, et pour afficher les félicitations dans ce cas !

EDIT

Extrait de Wikipedia:
Citation :
Parmi toutes les dispositions initiales, il existe 10 461 394 944 000 dispositions dont la résolution est possible (à savoir la moitié de la factorielle de 16),

Je n'ai pas programmé le test si c'est soluble ou pas. Je construis la configuration initlale au hasard... - donc, une chance sur deux de tomber sur une configuration soluble.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

Le pousse-pousse Empty
MessageSujet: re   Le pousse-pousse EmptyDim 16 Mar 2014 - 12:31

J' avais fait un truc qui ressemble à cà il y a quelque temps...

( webdav ) YGERONIMI\Mes programmes .exe\Jeux\Puzzle

Je suis assez régulièrement dans le même cas que toi Minibug  Laughing .
Revenir en haut Aller en bas
papydall

papydall


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyDim 16 Mar 2014 - 12:49

Il serait intéressant de pouvoir (via une option du menu) choisir la dimension du puzzle (3x3, 4x4, 5x5, etc)
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyDim 16 Mar 2014 - 13:06

Pour la faisabilité du jeu, la théorie nous indique qu’il faut calculer un invariant du jeu.
On définit un coefficient du désordre D qui donne le nombre de touches dans le désordre. (Pour  un jeu ordonné, ce nombre vaut bien sûr 0).
Ce nombre s’appelle un invariant.
Si D est pair : le jeu est faisable
Si D est impair : le jeu est insoluble.

Pour le cas où le 14 et le 15 sont inversés, on a bien D = 1 (une seule touche est en désordre : le 15 avant le 14) .
D est impair donc le jeu est insoluble.

Il ne reste plus qu’à programmer cette idée pour être certain de la faisabilité du jeu.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 1:06

J'ai revu le test pour la victoire (c'était n'importe quoi...). Et j'ai ajouté le début du test de solubilité avec la correction qui est opérationnelle. Seul l'algo du test manque, et ça viendra.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 1:40

J'ai ajouté l'algorithme de test de solubilité. Ca semble marcher. On ne devrait donc plus avoir de combinaisons insolubles...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 7:49

Une jolie nouvelle version
Revenir en haut Aller en bas
Minibug

Minibug


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 9:55

Tout simplement parfait !

Plus d'inversion a la fin.
par contre je n'ai pas vu le message de félicitations. dommage !!

Bravo klaus
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 10:58

Merci !

Pour la reconnaissance de la victoire, je vais revoir ma copie.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 11:43

Oui, moi non plus ce matin, je n'ai pas eu le message de victoire
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 12:01

Un message de victoire ! pourquoi faire ?  Very Happy 
Pour cela il faudrait gagner
 lol! 

Sympa ce jeu et plus pratique que la petite tablette en plastique, où les cases coincent car trop usées.

A+
Revenir en haut Aller en bas
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 12:20

Oh, c'est juste pour le fun...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 12:26

salut
Et je clique encore !
Un exemple d'utilisation de l'IDE dont l'utilisation pourrait
se banaliser d'ici peu  bounce
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 17:27

J'ai corrigé la partie reconnaissance de victoire. Ca devrait marcher, maintenant...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyLun 17 Mar 2014 - 21:50

Bravo Klaus, ça marche
Revenir en haut Aller en bas
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyMar 18 Mar 2014 - 0:21

Merci, Jicehel !

J'ai placé le source dans mon WebDav, dans le dossier jeux\pousse-pousse\.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jjn4

jjn4


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

Le pousse-pousse Empty
MessageSujet: +++   Le pousse-pousse EmptyMar 18 Mar 2014 - 16:26

Ah, les bons vieux jeux d'antan...!
C'est bien mieux que les kill-them-all
dont on ressort complètement échevelé !
 Basketball alien jocolor
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Klaus

Klaus


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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyDim 30 Mar 2014 - 13:41

As-tu vu qu'on peut charger une photo de son choix, un dessin ou n'importe quelle image ? Cette image sera alors fractionnée eb 4x4 segments dont le dernier en bas à droite sera écarté, puis un affiche les fragments à la place des chiffres qui s'affichent par défaut. Beaucoup plus difficile à jouer !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse EmptyDim 30 Mar 2014 - 16:19

Rudement bien fait ton pousse-pousse, mais ce n'est pas évident quand on a perdu l'habitude !
Revenir en haut Aller en bas
Contenu sponsorisé





Le pousse-pousse Empty
MessageSujet: Re: Le pousse-pousse   Le pousse-pousse Empty

Revenir en haut Aller en bas
 
Le pousse-pousse
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Taquin Pousse Pousse

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: