Aller au menu - Aller au contenu
> Le Site du Zéro > Les concours > C++ > Voir un concours

Fiche du concours

Le Sudoku : des nombres en folie !

Participer

Accéder au forum du concours
Voir les participations (46)

Début du concours : Le 26/06/2008 à 00h01 (GMT+1)
Fin des inscriptions : Le 15/07/2008 à 23h59 (GMT+1)
Fin du concours : Le 31/07/2008 à 23h59 (GMT+1)

Taille des équipes : Jusqu'à 2 membres
Type de concours : Avec notation des œuvres

Interface graphique : 10 points
Vérification de la grille : 8 points
Lisibilité du code : 6 points
Aide à l'utilisateur : 2 points
Lecture de la grille dans un fichier : 4 points
Génération aléatoire de la grille : 4 points
Résolution automatique de la grille : 6 points
Ce concours est terminé. Vous trouverez le classement un peu plus bas sur cette page.
Vous pouvez télécharger les codes source de chacun des projets. Attention, il faut compiler les projets pour les tester. Si vous ne programmez pas et que vous n'avez pas l'habitude, jetez un oeil à ce sujet du forum qui vous propose des programmes prêts à l'emploi pour certains des projets.


Bonjour et bienvenue à tous pour cette première édition des concours du Site du Zéro ! :)

Les concours sont une nouvelle façon attrayante de pratiquer ce que vous avez appris en lisant les tutoriels du site. Vous pouvez travailler seul ou en équipe, tout dépendra du concours et des limites qui y seront fixées.
L'objectif est avant tout de s'amuser et d'acquérir de l'expérience. Certains concours seront primés (il y aura des lots pour les meilleurs), d'autres comme celui-ci se feront juste pour le plaisir de participer.


Ce premier concours est un concours C++ faisant appel à la bibliothèque Qt, pour faire écho aux nombreux chapitres récemment parus dans le tutoriel C++.


Les règles du Sudoku



C'est un jeu à la mode dont vous avez forcément entendu parler. Il consiste à remplir des cases par des chiffres de 1 à 9... mais pas n'importe comment. Prenons cet exemple, tiré de Wikipédia :

Sudoku


Certaines cases sont déjà remplies. Le but du jeu est de trouver les chiffres manquants sur les cases vides. Les règles sont simples :

  • Sur chaque ligne, il doit y avoir tous les chiffres de 1 à 9.
  • Sur chaque colonne, il doit y avoir tous les chiffres de 1 à 9.
  • Dans chaque carré de 3x3 cases, il doit y avoir tous les chiffres de 1 à 9.

Une fois résolu, le sudoku précédent ressemble à ceci :

Sudoku


Regardez bien : chaque ligne comporte tous les chiffres de 1 à 9, pareil pour chaque colonne, pareil pour chaque carré de 3x3 cases.
Vous trouverez plus d'informations et de conseils sur l'article de Wikipédia.


Ce que vous devez programmer



L'objectif de ce concours est de programmer un jeu de Sudoku en C++ avec une interface graphique en Qt. Vous ne devrez pas hésiter à consulter à nouveau le cours de C++, mais aussi la doc de Qt au besoin.

Ce concours consiste avant tout à réaliser la partie graphique (le GUI), un nombre important de points étant basés dessus.
Il propose aussi une partie algorithmique pour ceux qui veulent aller plus loin et avoir plus de points (recommandé si vous avez du temps, mais pas obligatoire pour rendre votre travail).

Voici quelques exemples de programmes de Sudoku pour vous donner des idées :

Sudoku Sudoku Sudoku


Notez que tous les programmes présentés ci-dessus n'ont pas forcément été réalisés avec Qt, mais ils peuvent vous donner des idées pour réaliser une interface graphique originale.


Ce qui est obligatoire



  • Programmation en C++.
  • Utilisation de la bibliothèque Qt (Qt 4.4 recommandé).
  • Réalisation d'une interface graphique permettant de saisir des chiffres dans une grille, un seul chiffre par case.
  • Bouton "Vérifier !" permettant de dire à l'utilisateur si la grille est valide lorsque celle-ci est complète. Une grille valide doit respecter les règles du Sudoku décrites plus haut.

Ces critères obligatoires ne sont pas nombreux, ce qui permet à tout le monde de participer même avec un programme minimal.

Afin que ceux qui ont un meilleur niveau ne s'ennuient pas, plusieurs éléments facultatifs peuvent être ajoutés pour obtenir des points en plus.


Ce qui est facultatif...



...mais recommandé car cela peut vous rapporter des points en plus.

  • Aide à l'utilisateur affichant la liste des chiffres possibles pour la case actuellement sélectionnée.
  • Lecture d'une grille dans un fichier pouvant contenir plusieurs niveaux de Sudoku à remplir.
  • Génération aléatoire d'une grille.
  • Résolution automatique de la grille par l'ordinateur. Un algorithme de force brute (qui teste toutes les possibilités) peut être envisagé pour ceux qui veulent faire simple ou quand il n'y a pas d'autre choix, mais des techniques plus fines sont aussi possibles. Renseignez-vous. ;)


Organisation



Vous pouvez travailler seul ou par équipe de 2 pour ce concours, comme vous préférez. Le fait de travailler en équipe n'apporte ni bonus ni pénalité.
N'hésitez pas à poster sur le forum du concours si vous êtes bloqué ou si vous avez besoin de poster toute sorte de question.

Vous devrez rendre un fichier ZIP, avant la date de fin du concours, contenant uniquement les fichiers du code source permettant de compiler votre programme.

Ne mettez rien d'autre que les fichiers strictement nécessaires pour compiler votre projet : .cpp, .h, .pro, images, et éventuellement fichiers de traduction. Nous voulons juste avoir à faire qmake et make pour pouvoir tester votre programme.
Ne joignez pas de makefile. Ne joignez pas d'exécutable compilé. Ne joignez pas les DLL de Qt. La présence d'un fichier superflu sera sanctionnée.

Lorsque vous rendrez votre fichier ZIP, n'hésitez pas à donner une description complète de votre programme, en précisant ce que vous avez réussi à faire, ce que vous n'avez pas eu le temps de faire, ce qui vous a posé le plus de soucis... Bref autant de choses qui permettront au jury de mieux comprendre votre travail et d'en tenir compte éventuellement pour de futurs concours.

Ce concours n'est pas primé, vous participerez donc pour le plaisir et pour progresser !


Bon courage à tous !
N'oubliez pas, l'important c'est de participer ! :)



Participations

Classement Note Participant Œuvre
1 18.5 / 20 Équipe SudoZéro
Voir l'œuvre
SudoZéro
2 18 / 20 Équipe Quarante-Deux
Voir l'œuvre
SudoQt42
3 17.5 / 20 Équipe PangoTeam
Voir l'œuvre
Pangoku
4 17 / 20 Mic
Voir l'œuvre
SuduéKu
5 17 / 20 Assaf
Voir l'œuvre
ZeroSudoku
6 15.5 / 20 mick009
Voir l'œuvre
QSudoku
7 14.5 / 20 Ludo57310
Voir l'œuvre
Sudoku
8 14 / 20 bombadil
Voir l'œuvre
SuDoZu
9 14 / 20 Mr. Hyde
Voir l'œuvre
NeoSudoku
10 13.5 / 20 heero78
Voir l'œuvre
SpaceSudo
11 13.5 / 20 lanfeusst
Voir l'œuvre
zSudoku
12 13.5 / 20 Équipe The Winners
Voir l'œuvre
Sudoku 1.0
13 13 / 20 Dumbs
Voir l'œuvre
SuDoKu
14 12.5 / 20 mykeys
Voir l'œuvre
QtSudoku
15 12.5 / 20 rushia
Voir l'œuvre
QSudo
16 12.5 / 20 Équipe Le Club des P
Voir l'œuvre
SudoCube
17 12.5 / 20 Kushou
Voir l'œuvre
Zudoku
18 12 / 20 Melina31
Voir l'œuvre
Comte Su Dooku
19 12 / 20 Pedrolino
Voir l'œuvre
Sudo++
20 11.5 / 20 BoudBoulMan
Voir l'œuvre
Sudoku
21 11.5 / 20 Craze
Voir l'œuvre
Crazy Sudoku
22 11 / 20 Hugo12
Voir l'œuvre
SudoMini
23 11 / 20 tpby56
Voir l'œuvre
xSudoku
24 11 / 20 Brogol
Voir l'œuvre
SudoKute
25 10.5 / 20 Le_bredin
Voir l'œuvre
Sue,dos,Q
26 10 / 20 Wolfofnight
Voir l'œuvre
Nampure
27 10 / 20 gm31220
Voir l'œuvre
Sudoku
28 9.5 / 20 Jet74
Voir l'œuvre
SudoQu
29 9 / 20 Équipe Team Kobware
Voir l'œuvre
SuDoKu
30 9 / 20 ChiChou
Voir l'œuvre
Su-do-ku
31 9 / 20 NeoKript
Voir l'œuvre
Sudoku
32 8.5 / 20 viruz86
Voir l'œuvre
src sudoku
33 7.5 / 20 Carma001
Voir l'œuvre
SudoStar
34 7 / 20 djo0012
Voir l'œuvre
DjoDoku
35 7 / 20 tyty42
Voir l'œuvre
SuDoKu
36 6 / 20 Dominus
Voir l'œuvre
Sudoky
37 6 / 20 Ygard
Voir l'œuvre
ZSudoku
38 5.5 / 20 napsterhandball
Voir l'œuvre
Alien Sudoku
39 5 / 20 Lyrke
Voir l'œuvre
LXSudoku
40 4 / 20 alucard86
Voir l'œuvre
Red
41 3.5 / 20 GQMP
Voir l'œuvre
Sudoku
42 3.5 / 20 tintincocos
Voir l'œuvre
SuMania
43 2 / 20 goupil
Voir l'œuvre
sudoku
44 1.5 / 20 MisterDo
Voir l'œuvre
Sudoku by Me
45 1.5 / 20 secret055
Voir l'œuvre
ZSudoku-Challenge
46 1 / 20 rom1504
Voir l'œuvre
RSudoku