Le jeu de SUDOKU consiste à remplir une grille avec des chiffre

Transcription

Le jeu de SUDOKU consiste à remplir une grille avec des chiffre
PROJET BdP 2007-2008
à rendre au plus tard en TD la semaine du 14 Janvier 2008
Thème du projet
Le jeu de SUDOKU consiste à remplir une grille avec des chiffres de 0 à 9.
La grille est composée de 9 lignes et 9 colonnes et est organisée en 9 régions de 3 lignes et 3 colonnes.
Exemple de grille partiellement remplie
6
5
9 8 7
6
2
6 3
5 4
7
1 3
5
8 9
4
5
2 6
6
8 1
9
5 8
6 4
3
7
2 5 3
1
5
Au début du jeu la grille contient des chiffres et des cases vides.
Le but du jeu est de remplir les cases vides en respectant les règles suivantes :
-1 chiffre ne doit apparaître qu’une seule fois par ligne
-1 chiffre ne doit apparaître qu’une seule fois par colonne
-1 chiffre ne doit apparaître qu’une seule fois par région
Écrire un programme qui permettra de jouer au Sudoku en suivant le cahier des charges ci-dessous :
Cahier des charges
• afficher la règle du jeu
• choisir le niveau de jeu en faisant varier le nombre de cases déjà initialisées.
• charger une grille préalablement sauvegardée dans un fichier
• sauvegarder une partie en cours dans un fichier
• initialiser une grille pour démarrer une partie :
o soit à partir d’un ensemble de grilles déjà définies et stockée dans des fichiers textes.
o soit par le joueur : par saisie (dans ce cas le logiciel doit vérifier que la grille est
correcte).
• jouer sous le contrôle du logiciel qui signale tout choix du joueur qui ne respecte pas les règles.
• afficher la liste des joueurs enregistrés avec leur score ; pour cela, les joueurs seront identifiés
par leur nom et seront enregistrés dans un fichier (texte ou binaire) avec leurs scores (nombre
de parties gagnées et nombre de parties jouées).
Contenu du dossier
• Un guide d’utilisation du logiciel.
• Un descriptif technique : organisation générale, choix des structures de données (les variables et
leur type, les structures, etc.), découpage en fonctions, etc.
• Une analyse succincte expliquant ces choix techniques.
• Un listing du programme (commenté et indenté avec un entête pour le programme principal et en
entête pour chaque fonction).
• Un exécutable sous Linux
• Le projet doit être rendu par binôme en TD la semaine du 14 Janvier 2008