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
» Synedit Parameters
par Yannick Aujourd'hui à 0:27

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Hier à 21:16

» Compilateur FBPano
par jean_debord Hier à 9:56

» Bienvenue à Virtualalan !
par UltraVox Hier à 9:18

» Concours de Morpions
par jjn4 Hier à 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

» >199
par maelilou Mar 20 Juin 2017 - 14:13

» NUMBER_FOCUS
par Yannick Lun 19 Juin 2017 - 15:25

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Aide à la résolution d'un Kakuro

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

avatar

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

MessageSujet: Aide à la résolution d'un Kakuro   Sam 6 Déc 2014 - 3:48

Un Kakuro est un jeu de la famille des puzzles numériques. Un pur jeu de réflexion. Il est une sorte de croisement entre un Sudoku et un Mot Fléché. En effet, il s'agit de remplir des lignes et colonnes qui se croisent, uniquement avec les chiffres de 1 à 9, sans doublons, ni horizontalement ni verticalement. Et on a un indice, dans les cases pleines à gauche ou au-dessus de l'espace à remplir, qui contient la somme des chiffres à placer. L'ordre est libre, à condition de respecter l'unicité horizontale et verticale des chiffres, et bien sûr la cohérence avec les définitions données pour chaque ligne et chaque colonne. Le jeu se résume donc à un raisonnement logique d'exclusion des impossibilités pour en déduire des certitudes.

Voici un exemple d'un Kakuro:


J'ai fait un petit outil en Panoramic pur qui permet d'avoir les décompositions additives de n'importe quel nombre entre 1 et 45 (45=1+2+3+4+5+6+7+8+9). Et pour plus de facilité, on peut avoir deux décompositions côte à côte, afin de mieux relever les possibles et impossibles. Voici le code de Kakuro_Aide.bas:
Code:
' Kakuro_Aide.bas

label go1, go2, moins1, moins2

dim i%, j%, n%, nn%, nt%, nd%, s$
dim tableau%(550,9), nombres%(550)

width 0,310 : height 0,450

alpha 10 : top 10,10 : left 10,10 : caption 10,"Nombre à décomposer:"
spin 11 : top 11,30 : left 11,10 : width 11,50 : min 11,1 : max 11,45 : position 11,1
alpha 12 : top 12,60 : left 12,10 : caption 12,"Nombre de chiffres:"
spin 13 : top 13,80 : left 13,10 : width 13,50 : min 13,0 : max 13,9 : position 13,0
button 20 : top 20,110 : left 20,10 : caption 20,"Décomposer" : on_click 20,go1
button 21 : top 21,130 : left 21,110 : width 21,30 : caption 21,"X" : on_click 21,moins1

list 30 : top 30,150 : left 30,10 : width 30,130 : height 30,250

alpha 110 : top 110,10 : left 110,150 : caption 110,"Nombre à décomposer:"
spin 111 : top 111,30 : left 111,150 : width 111,50 : min 111,1 : max 111,45 : position 111,1
alpha 112 : top 112,60 : left 112,150 : caption 112,"Nombre de chiffres:"
spin 113 : top 113,80 : left 113,150 : width 113,50 : min 113,0 : max 113,9 : position 113,0
button 120 : top 120,110 : left 120,150 : caption 120,"Décomposer" : on_click 120,go2
button 121 : top 121,130 : left 121,250 : width 121,30 : caption 121,"X" : on_click 121,moins2

list 130 : top 130,150 : left 130,150 : width 130,130 : height 130,250

read n%
while n%<>0
  if n%<0
    nn% = 0 - n%
  else
    nt% = nt% + 1
    nombres%(nt%) = nn%
    tableau%(nt%,1) = n%
    for i%=1 to nn%-1
      read n%
      tableau%(nt%,1+i%) = n%
    next i%
    read n%
    tableau%(nt%,0) = n%
  end_if
  read n%
end_while

end

go1:
  clear 30
  n% = position(11)
  nd% = position(13)
  for i%=1 to nt%
    if (nd%=0) or (nombres%(i%)=nd%)
      if tableau%(i%,0)=n%
        s$ = str$(nombres%(i%))+": "
        for j%=1 to nombres%(i%)
          s$ = s$ + str$(tableau%(i%,j%))+"+"
        next j%
        item_add 30,left$(s$,len(s$)-1) : ' +"  "+str$(nd%)
      end_if
    end_if
  next i%
  return
 
moins1:
  if item_index(30)>0 then item_delete 30,item_index(30)
  return
 
go2:
  clear 130
  n% = position(111)
  nd% = position(113)
  for i%=1 to nt%
    if (nd%=0) or (nombres%(i%)=nd%)
      if tableau%(i%,0)=n%
        s$ = str$(nombres%(i%))+": "
        for j%=1 to nombres%(i%)
          s$ = s$ + str$(tableau%(i%,j%))+"+"
        next j%
        item_add 130,left$(s$,len(s$)-1)
      end_if
    end_if
  next i%
  return

moins2:
  if item_index(130)>0 then item_delete 130,item_index(130)
  return

data -1
data -2
data 1,2,3
data 1,3,4
data 1,4,5
data 2,3,5
data 1,5,6
data 2,4,6
data 1,6,7
data 2,5,7
data 3,4,7
data 1,7,8
data 2,6,8
data 3,5,8
data 1,8,9
data 2,7,9
data 3,6,9
data 4,5,9
data 1,9,10
data 2,8,10
data 3,7,10
data 4,6,10
data 2,9,11
data 3,8,11
data 4,7,11
data 5,6,11
data 3,9,12
data 4,8,12
data 5,7,12
data 4,9,13
data 5,8,13
data 6,7,13
data 5,9,14
data 6,8,14
data 6,9,15
data 7,8,15
data 7,9,16
data 8,9,17
data -3
data 1,2,3,6
data 1,2,4,7
data 1,2,5,8
data 1,3,4,8
data 1,2,6,9
data 1,3,5,9
data 2,3,4,9
data 1,2,7,10
data 1,3,6,10
data 1,4,5,10
data 2,3,5,10
data 1,2,8,11
data 1,3,7,11
data 1,4,6,11
data 2,3,6,11
data 2,4,5,11
data 1,2,9,12
data 1,3,8,12
data 1,4,7,12
data 1,5,6,12
data 2,3,7,12
data 2,4,6,12
data 3,4,5,12
data 1,3,9,13
data 1,4,8,13
data 1,5,7,13
data 2,3,8,13
data 2,4,7,13
data 2,5,6,13
data 3,4,6,13
data 1,4,9,14
data 1,5,8,14
data 1,6,7,14
data 2,3,9,14
data 2,4,8,14
data 2,5,7,14
data 3,4,7,14
data 3,5,6,14
data 1,5,9,15
data 1,6,8,15
data 2,4,9,15
data 2,5,8,15
data 2,6,7,15
data 3,4,8,15
data 3,5,7,15
data 4,5,6,15
data 1,6,9,16
data 1,7,8,16
data 2,5,9,16
data 2,6,8,16
data 3,4,9,16
data 3,5,8,16
data 3,6,7,16
data 4,5,7,16
data 1,7,9,17
data 2,6,9,17
data 2,7,8,17
data 3,5,9,17
data 3,6,8,17
data 4,5,8,17
data 4,6,7,17
data 1,8,9,18
data 2,7,9,18
data 3,6,9,18
data 3,7,8,18
data 4,5,9,18
data 4,6,8,18
data 5,6,7,18
data 2,8,9,19
data 3,7,9,19
data 4,6,9,19
data 4,7,8,19
data 5,6,8,19
data 3,8,9,20
data 4,7,9,20
data 5,6,9,20
data 5,7,8,20
data 4,8,9,21
data 5,7,9,21
data 6,7,8,21
data 5,8,9,22
data 6,7,9,22
data 6,8,9,23
data 7,8,9,24
data -4
data 1,2,3,4,10
data 1,2,3,5,11
data 1,2,3,6,12
data 1,2,4,5,12
data 1,2,3,7,13
data 1,2,4,6,13
data 1,3,4,5,13
data 1,2,3,8,14
data 1,2,4,7,14
data 1,2,5,6,14
data 1,3,4,6,14
data 2,3,4,5,14
data 1,2,3,9,15
data 1,2,4,8,15
data 1,2,5,7,15
data 1,3,4,7,15
data 1,3,5,6,15
data 2,3,4,6,15
data 1,2,4,9,16
data 1,2,5,8,16
data 1,2,6,7,16
data 1,3,4,8,16
data 1,3,5,7,16
data 1,4,5,6,16
data 2,3,4,7,16
data 2,3,5,6,16
data 1,2,5,9,17
data 1,2,6,8,17
data 1,3,4,9,17
data 1,3,5,8,17
data 1,3,6,7,17
data 1,4,5,7,17
data 2,3,4,8,17
data 2,3,5,7,17
data 2,4,5,6,17
data 1,2,6,9,18
data 1,2,7,8,18
data 1,3,5,9,18
data 1,3,6,8,18
data 1,4,5,8,18
data 1,4,6,7,18
data 2,3,4,9,18
data 2,3,5,8,18
data 2,3,6,7,18
data 2,4,5,7,18
data 3,4,5,6,18
data 1,2,7,9,19
data 1,3,6,9,19
data 1,3,7,8,19
data 1,4,5,9,19
data 1,4,6,8,19
data 1,5,6,7,19
data 2,3,5,9,19
data 2,3,6,8,19
data 2,4,5,8,19
data 2,4,6,7,19
data 3,4,5,7,19
data 1,2,8,9,20
data 1,3,7,9,20
data 1,4,6,9,20
data 1,4,7,8,20
data 1,5,6,8,20
data 2,3,6,9,20
data 2,3,7,8,20
data 2,4,5,9,20
data 2,4,6,8,20
data 2,5,6,7,20
data 3,4,5,8,20
data 3,4,6,7,20
data 1,3,8,9,21
data 1,4,7,9,21
data 1,5,6,9,21
data 1,5,7,8,21
data 2,3,7,9,21
data 2,4,6,9,21
data 2,4,7,8,21
data 2,5,6,8,21
data 3,4,5,9,21
data 3,4,6,8,21
data 3,5,6,7,21
data 1,4,8,9,22
data 1,5,7,9,22
data 1,6,7,8,22
data 2,3,8,9,22
data 2,4,7,9,22
data 2,5,6,9,22
data 2,5,7,8,22
data 3,4,6,9,22
data 3,4,7,8,22
data 3,5,6,8,22
data 4,5,6,7,22
data 1,5,8,9,23
data 1,6,7,9,23
data 2,4,8,9,23
data 2,5,7,9,23
data 2,6,7,8,23
data 3,4,7,9,23
data 3,5,6,9,23
data 3,5,7,8,23
data 4,5,6,8,23
data 1,6,8,9,24
data 2,5,8,9,24
data 2,6,7,9,24
data 3,4,8,9,24
data 3,5,7,9,24
data 3,6,7,8,24
data 4,5,6,9,24
data 4,5,7,8,24
data 1,7,8,9,25
data 2,6,8,9,25
data 3,5,8,9,25
data 3,6,7,9,25
data 4,5,7,9,25
data 4,6,7,8,25
data 2,7,8,9,26
data 3,6,8,9,26
data 4,5,8,9,26
data 4,6,7,9,26
data 5,6,7,8,26
data 3,7,8,9,27
data 4,6,8,9,27
data 5,6,7,9,27
data 4,7,8,9,28
data 5,6,8,9,28
data 5,7,8,9,29
data 6,7,8,9,30
data -5
data 1,2,3,4,5,15
data 1,2,3,4,6,16
data 1,2,3,4,7,17
data 1,2,3,5,6,17
data 1,2,3,4,8,18
data 1,2,3,5,7,18
data 1,2,4,5,6,18
data 1,2,3,4,9,19
data 1,2,3,5,8,19
data 1,2,3,6,7,19
data 1,2,4,5,7,19
data 1,3,4,5,6,19
data 1,2,3,5,9,20
data 1,2,3,6,8,20
data 1,2,4,5,8,20
data 1,2,4,6,7,20
data 1,3,4,5,7,20
data 2,3,4,5,6,20
data 1,2,3,6,9,21
data 1,2,3,7,8,21
data 1,2,4,5,9,21
data 1,2,4,6,8,21
data 1,2,5,6,7,21
data 1,3,4,5,8,21
data 1,3,4,6,7,21
data 2,3,4,5,7,21
data 1,2,3,7,9,22
data 1,2,4,6,9,22
data 1,2,4,7,8,22
data 1,2,5,6,8,22
data 1,3,4,5,9,22
data 1,3,4,6,8,22
data 1,3,5,6,7,22
data 2,3,4,5,8,22
data 2,3,4,6,7,22
data 1,2,3,8,9,23
data 1,2,4,7,9,23
data 1,2,5,6,9,23
data 1,2,5,7,8,23
data 1,3,4,6,9,23
data 1,3,4,7,8,23
data 1,3,5,6,8,23
data 1,4,5,6,7,23
data 2,3,4,5,9,23
data 2,3,4,6,8,23
data 2,3,5,6,7,23
data 1,2,4,8,9,24
data 1,2,5,7,9,24
data 1,2,6,7,8,24
data 1,3,4,7,9,24
data 1,3,5,6,9,24
data 1,3,5,7,8,24
data 1,4,5,6,8,24
data 2,3,4,6,9,24
data 2,3,4,7,8,24
data 2,3,5,6,8,24
data 2,4,5,6,7,24
data 1,2,5,8,9,25
data 1,2,6,7,9,25
data 1,3,4,8,9,25
data 1,3,5,7,9,25
data 1,3,6,7,8,25
data 1,4,5,6,9,25
data 1,4,5,7,8,25
data 2,3,4,7,9,25
data 2,3,5,6,9,25
data 2,3,5,7,8,25
data 2,4,5,6,8,25
data 3,4,5,6,7,25
data 1,2,6,8,9,26
data 1,3,5,8,9,26
data 1,3,6,7,9,26
data 1,4,5,7,9,26
data 1,4,6,7,8,26
data 2,3,4,8,9,26
data 2,3,5,7,9,26
data 2,3,6,7,8,26
data 2,4,5,6,9,26
data 2,4,5,7,8,26
data 3,4,5,6,8,26
data 1,2,7,8,9,27
data 1,3,6,8,9,27
data 1,4,5,8,9,27
data 1,4,6,7,9,27
data 1,5,6,7,8,27
data 2,3,5,8,9,27
data 2,3,6,7,9,27
data 2,4,5,7,9,27
data 2,4,6,7,8,27
data 3,4,5,6,9,27
data 3,4,5,7,8,27
data 1,3,7,8,9,28
data 1,4,6,8,9,28
data 1,5,6,7,9,28
data 2,3,6,8,9,28
data 2,4,5,8,9,28
data 2,4,6,7,9,28
data 2,5,6,7,8,28
data 3,4,5,7,9,28
data 3,4,6,7,8,28
data 1,4,7,8,9,29
data 1,5,6,8,9,29
data 2,3,7,8,9,29
data 2,4,6,8,9,29
data 2,5,6,7,9,29
data 3,4,5,8,9,29
data 3,4,6,7,9,29
data 3,5,6,7,8,29
data 1,5,7,8,9,30
data 2,4,7,8,9,30
data 2,5,6,8,9,30
data 3,4,6,8,9,30
data 3,5,6,7,9,30
data 4,5,6,7,8,30
data 1,6,7,8,9,31
data 2,5,7,8,9,31
data 3,4,7,8,9,31
data 3,5,6,8,9,31
data 4,5,6,7,9,31
data 2,6,7,8,9,32
data 3,5,7,8,9,32
data 4,5,6,8,9,32
data 3,6,7,8,9,33
data 4,5,7,8,9,33
data 4,6,7,8,9,34
data 5,6,7,8,9,35
data -6
data 1,2,3,4,5,6,21
data 1,2,3,4,5,7,22
data 1,2,3,4,5,8,23
data 1,2,3,4,6,7,23
data 1,2,3,4,5,9,24
data 1,2,3,4,6,8,24
data 1,2,3,5,6,7,24
data 1,2,3,4,6,9,25
data 1,2,3,4,7,8,25
data 1,2,3,5,6,8,25
data 1,2,4,5,6,7,25
data 1,2,3,4,7,9,26
data 1,2,3,5,6,9,26
data 1,2,3,5,7,8,26
data 1,2,4,5,6,8,26
data 1,3,4,5,6,7,26
data 1,2,3,4,8,9,27
data 1,2,3,5,7,9,27
data 1,2,3,6,7,8,27
data 1,2,4,5,6,9,27
data 1,2,4,5,7,8,27
data 1,3,4,5,6,8,27
data 2,3,4,5,6,7,27
data 1,2,3,5,8,9,28
data 1,2,3,6,7,9,28
data 1,2,4,5,7,9,28
data 1,2,4,6,7,8,28
data 1,3,4,5,6,9,28
data 1,3,4,5,7,8,28
data 2,3,4,5,6,8,28
data 1,2,3,6,8,9,29
data 1,2,4,5,8,9,29
data 1,2,4,6,7,9,29
data 1,2,5,6,7,8,29
data 1,3,4,5,7,9,29
data 1,3,4,6,7,8,29
data 2,3,4,5,6,9,29
data 2,3,4,5,7,8,29
data 1,2,3,7,8,9,30
data 1,2,4,6,8,9,30
data 1,2,5,6,7,9,30
data 1,3,4,5,8,9,30
data 1,3,4,6,7,9,30
data 1,3,5,6,7,8,30
data 2,3,4,5,7,9,30
data 2,3,4,6,7,8,30
data 1,2,4,7,8,9,31
data 1,2,5,6,8,9,31
data 1,3,4,6,8,9,31
data 1,3,5,6,7,9,31
data 1,4,5,6,7,8,31
data 2,3,4,5,8,9,31
data 2,3,4,6,7,9,31
data 2,3,5,6,7,8,31
data 1,2,5,7,8,9,32
data 1,3,4,7,8,9,32
data 1,3,5,6,8,9,32
data 1,4,5,6,7,9,32
data 2,3,4,6,8,9,32
data 2,3,5,6,7,9,32
data 2,4,5,6,7,8,32
data 1,2,6,7,8,9,33
data 1,3,5,7,8,9,33
data 1,4,5,6,8,9,33
data 2,3,4,7,8,9,33
data 2,3,5,6,8,9,33
data 2,4,5,6,7,9,33
data 3,4,5,6,7,8,33
data 1,3,6,7,8,9,34
data 1,4,5,7,8,9,34
data 2,3,5,7,8,9,34
data 2,4,5,6,8,9,34
data 3,4,5,6,7,9,34
data 1,4,6,7,8,9,35
data 2,3,6,7,8,9,35
data 2,4,5,7,8,9,35
data 3,4,5,6,8,9,35
data 1,5,6,7,8,9,36
data 2,4,6,7,8,9,36
data 3,4,5,7,8,9,36
data 2,5,6,7,8,9,37
data 3,4,6,7,8,9,37
data 3,5,6,7,8,9,38
data 4,5,6,7,8,9,39
data -7
data 1,2,3,4,5,6,7,28
data 1,2,3,4,5,6,8,29
data 1,2,3,4,5,6,9,30
data 1,2,3,4,5,7,8,30
data 1,2,3,4,5,7,9,31
data 1,2,3,4,6,7,8,31
data 1,2,3,4,5,8,9,32
data 1,2,3,4,6,7,9,32
data 1,2,3,5,6,7,8,32
data 1,2,3,4,6,8,9,33
data 1,2,3,5,6,7,9,33
data 1,2,4,5,6,7,8,33
data 1,2,3,4,7,8,9,34
data 1,2,3,5,6,8,9,34
data 1,2,4,5,6,7,9,34
data 1,3,4,5,6,7,8,34
data 1,2,3,5,7,8,9,35
data 1,2,4,5,6,8,9,35
data 1,3,4,5,6,7,9,35
data 2,3,4,5,6,7,8,35
data 1,2,3,6,7,8,9,36
data 1,2,4,5,7,8,9,36
data 1,3,4,5,6,8,9,36
data 2,3,4,5,6,7,9,36
data 1,2,4,6,7,8,9,37
data 1,3,4,5,7,8,9,37
data 2,3,4,5,6,8,9,37
data 1,2,5,6,7,8,9,38
data 1,3,4,6,7,8,9,38
data 2,3,4,5,7,8,9,38
data 1,3,5,6,7,8,9,39
data 2,3,4,6,7,8,9,39
data 1,4,5,6,7,8,9,40
data 2,3,5,6,7,8,9,40
data 2,4,5,6,7,8,9,41
data 3,4,5,6,7,8,9,42
data -8
data 1,2,3,4,5,6,7,8,36
data 1,2,3,4,5,6,7,9,37
data 1,2,3,4,5,6,8,9,38
data 1,2,3,4,5,7,8,9,39
data 1,2,3,4,6,7,8,9,40
data 1,2,3,5,6,7,8,9,41
data 1,2,4,5,6,7,8,9,42
data 1,3,4,5,6,7,8,9,43
data 2,3,4,5,6,7,8,9,44
data -9
data 1,2,3,4,5,6,7,8,9,45
data 0

Et voici ce que ça donne en cours de jeu:

On voit que dans la première colonne, le nombre 17 ne peut se composer que de 7 et 9. Et dans la 6ème ligne, le nombre 16 ne peut être composé que de 7 et 9. Or,le seul nombre commun est le 9, et il doit donc se trouver dans la case commune de ces deux définitions. La place des autres nombres de ces deux définitions en découlent directement. Et ainsi de suite.

EDIT

J'ai ajouté un bouton "X" sur chacune des deux listes de décomposition, afin de pouvoir éliminer la possibilité qui est sélectionnée. Ceci permet de réduire visuellement la liste des combinaisons aux combinaisons acceptables, selon le contexte. Il suffit de recliquer sur le bouton "Décomposer" pour obtenir à nouveau toutes les possibilités.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5837
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Aide à la résolution d'un Kakuro   Sam 6 Déc 2014 - 13:19

Superbe Klaus. Plus qu'à nous faire un jeu de Sakuro maintenant Wink (Je sais il en existe sur le web, mais pas encore en Panoramic). En tout cas c'est un bel outil pour quand on bloque.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
Aide à la résolution d'un Kakuro
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Aide à la résolution d'un Kakuro
» Aide code facebook, autre solution?
» Un autre mystère
» besion d'aide language html lecteur de musique !! (Résolu)
» Solution qui bloque les virus avant qu’ils ne se propagent

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: