Résolution d’un programme de type Griddlers Projet tutoré 2ème année Cet exposé propose une résolution d’un nonogramme à l’aide d’un logiciel programmé en langage C. BARROS Anthony BENE Samuel CORREA Loup SAUVADET Michael VERDIER David Département Mesures Physiques
34
Embed
��R�solution d un programme de type Griddlers
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Résolution d’un programme de type Griddlers
Projet tutoré 2ème année Cet exposé propose une résolution d’un nonogramme à l’aide d’un logiciel programmé en langage C.
BARROS Anthony
BENE Samuel
CORREA Loup
SAUVADET Michael
VERDIER David
Département
Mesures Physiques
Projet Tutoré N°9 Résolution d’un programme de type
Griddlers
2ème Année
2008 - 2009
1
Nous voudrions remercier M. Yan Gérard, responsable de notre projet, qui nous a
beaucoup aidés tout au long de ce projet.
Projet Tutoré N°9 Résolution d’un programme de type
Griddlers
2ème Année
2008 - 2009
2
Sommaire
I. Introduction ..............................................................................................................3
II. Présentation des griddlers .........................................................................................4
A. Historique .............................................................................................................4
B. Comment jouer au Griddlers ? ..............................................................................5
C. La théorie de la complexité ...................................................................................6
1. Définition de la complexité................................................................................6
2. Dualité entre les classes. ....................................................................................7
III. Comment résoudre un griddlers ? ..........................................................................8
A. Méthodes de résolution à la main ..........................................................................8
B. Le langage C .........................................................................................................9
C. Présentation du programme de résolution ..............................................................9
3. Fonctionnement de la fonction de remplissage : .................................................9
4. Fonctionnement d’une fonction récursive : ...................................................... 10
IV. Le programme GridResolv .................................................................................. 12
A. Les problèmes rencontrés .................................................................................... 12
1. L’avancement primaire du programme ............................................................ 12
2. Avancement secondaire : les pointeurs ............................................................ 13
B. Effectuer des tests ............................................................................................... 14
C. Les fonctions intermédiaires ............................................................................... 20
1. La fonction d’initialisation .............................................................................. 20
2. La fonction de remplissage évident .................................................................. 21
3. La fonction de remplissage principal ............................................................... 26
4. La fonction récursive ....................................................................................... 28
D. La fonction principale ......................................................................................... 30
V. Conclusion ............................................................................................................. 32
VI. Bibliographie ...................................................................................................... 33
Projet Tutoré N°9 Résolution d’un programme de type
Griddlers
2ème Année
2008 - 2009
3
I. Introduction
Les nonogrammes, jeux de logiques tels que les sudoku, kakuro, ou encore griddlers,
sont des passes temps très populaires ; à tel point que tous les magazines, périodiques ou
journaux, en particulier au japon, en publient chaque jour (majoritairement des sudoku pour la
France).
Ainsi des programmes de résolution sont nécessaires pour valider, infirmer, voire
créer, ces grilles logiques. Cet exposé présente un exemple de programme permettant de
solutionner des nonogrammes appartenant aux problèmes difficiles à résoudre.
Tout d’abord un bref historique est dressé, puis l’avancement des méthodes à privilégier
pour la résolution avec les limites et les difficultés rencontrées sont détaillées, et enfin le
programme final est présenté et expliqué dans son intégralité.
Figure 1 : Symbole de propagande du langage C
Projet Tutoré N°9 Résolution d’un programme de type
Griddlers
2ème Année
2008 - 2009
4
II. Présentation des griddlers
A. Historique
Le griddlers, de son nom d’origine le Picross ou nonogram ou encore hanjie, est un jeu de
réflexion solitaire qui consiste à découvrir un dessin sur une grille en coloriant des cases,
d’après des indices logiques situés sur les bords gauche et haut de celle-ci.
Figure 2 : Exemple d’un griddlers coloré en forme de fleur
Les origines de ces jeux logiques tels que le sudoku ou le kakuro sont assez récentes : de
l’ordre du siècle. En ce qui concerne les picross, un périodique italien, le « Stephenson’s
train » en fait mention en 1925.
Plus récemment, au Japon, Non Ichida, graphiste, pour les besoins d’un concours, créé
une image sur un immeuble de Tokyo, en allumant et en éteignant les fenêtres de ce dernier.
A la suite de cet épisode elle met en place les règles du hanjie et publie trois grilles dans un
périodique japonais.
Le nom de nonogram apparait en 1990 en Angleterre lorsque Non Ichida fait découvrir
son nouveau jeu au journal anglais « The Telegraph ». Puis en 1998, « The Sunday
Telegraph » lance un concours afin de renommer ces puzzles ; c’est alors que ceux-ci
acquièrent le nom de Griddlers qui est aujourd’hui le nom d’usage.
De nos jours, il existe des sites internet qui, comme les périodiques, publient des grilles de
toutes les tailles et de tous les niveaux moyennant une inscription gratuite ; citons par exemple
le site www.griddlers.net. Il existe aussi des logiciels en vente, comme Griddlers Deluxe
2006, qui permettent de créer ses propres grilles en couleur ou en noir et blanc, à partir par
exemple d’une photo ou d’une image. Le logiciel cité est très performant et est capable de
déterminer si pour une grille donnée, il existe une ou plusieurs solutions. Enfin récemment un
jeu nommé Picross est sorti pour les consoles Nintendo DS, proposant un didacticiel, des
grilles à résoudre, et la possibilité de créer ses propres grilles.
Les règles de ce jeu logique sont présentées plus loin.