Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉMINEUR


Information sur la source

Catégorie :Jeux Classé sous : demineur, jeux, fichier Niveau : Débutant Date de création : 04/08/2007 Date de mise à jour : 07/08/2007 10:13:26 Vu / téléchargé: 5 012 / 431

Note :
7 / 10 - par 2 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (30)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Un démineur de plus, avec les différents niveaux de difficulté repris du classique démineur de Windows. Il gère de la même manière les meilleurs scores.

Je tiens à préciser que ceci à été réalisé à titre experimental, que ça marche mais que je n'ai pas pour autant la prétention d'être une tête en Java. Au contraire c'est de petits projets en petits projets comme celui-ci que j'améliore mon niveau. Toute critique, constructive de préférence, est bien sur souhaité!
 

Conclusion

Je crois qu'il se produit quelques erreurs lorsque l'utilisateur ne saisit pas des chiffres dans le dialogue de personnalisation du type partie. Ce serait donc une chose à améliorer.
Et si on souhaite vraiment s'approcher du classique démineur de Windows, on pourra souhaiter ajouter les compteurs de mine et de temps sur l'affichage.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

07 août 2007 10:13:26 :
La source a été éclaté suite au conseils donnés dans les commentaires.

Commentaires et avis

signaler à un administrateur
Commentaire de DARKSIDIOUS le 05/08/2007 08:38:54 administrateur CS

Tu devrais essayer d'eclater ton programme en plusieurs classes, car là, lire une classe d'un peu plus d'un milier de ligne, c'est indigeste...

signaler à un administrateur
Commentaire de dwogsi le 05/08/2007 14:44:57

Franchement c'est surtout parce qu'il y a beaucoup de commentaires que ça prend pas mal de lignes.
Mais je vais essayer d'éclater ça.

signaler à un administrateur
Commentaire de randriano le 05/08/2007 14:47:29

Bonjour !

Je n'ai qu'un mot à dire : génial !!!!

Mais suis aussi le conseil de DARKSIDIOUS.
Bonne continuation !

signaler à un administrateur
Commentaire de dwogsi le 05/08/2007 18:54:03

Merci.
Et désolé mais je ne vais pas éclater la source, je la trouve tout de même suffisament clair et puis si je commence à l'éclater ça va me poser quelques problème niveau visibilité des déclarations et partage des données. Pas que ce soit infaisable, bien au contraire, mais un peu... chiant!

signaler à un administrateur
Commentaire de LeFauve42 le 06/08/2007 11:41:06

>Et désolé mais je ne vais pas éclater la source, je la trouve tout de même suffisament
>clair et puis si je commence à l'éclater ça va me poser quelques problème niveau visibilité
>des déclarations et partage des données. Pas que ce soit infaisable, bien au contraire, mais
>un peu... chiant!

Personne n'a dit que ce serait facile, mais c'est une bonne habitude a prendre, alors quite a ecrire des petits codes experimentaux pour ameliorer ton niveau, pourquoi ne pas essayer.

Tous les problemes de visibilite peuvent se resoudre avec une bonne architecture, et ca me semble un bon exercice de conception objet.

Enfin, tu fais comme tu veux bien sur :o)

Sinon je n'ai pas essaye ton jeu (je suis au boulot) mais il a l'air bien.
(J'ai surtout apprecie que tu permettes de jouer "avec un seul bouton", ce qui est indispensable pour faire de bons scores ;o) ).

A+,
Eric

signaler à un administrateur
Commentaire de dwogsi le 06/08/2007 14:27:32

>Personne n'a dit que ce serait facile, mais c'est une bonne habitude a prendre, alors quite a
>ecrire des petits codes experimentaux pour ameliorer ton niveau, pourquoi ne pas essayer.

D'accord pour dire que c'est une bonne habitude, mais pas forcément dans tout les cas.
Ici on a un fichier qui atteint les 1000 lignes surtout parce qu'il est très aéré et très (peut être trop) commenté. Il pourrait certainement prendre la moitié voir moins si ce n'était pas le cas.

Je ne ressent donc vraiment pas le besoin d'éclater la source ici. En revanche, je travail actuellement sur un plus gros projet, pour lequelle j'ai commencé à éclater ma source. Surtout que la plupart des classes sont codées de façon à être réutilisables et donc indépendantes des autres.

Sinon je ne dis pas que ce serait difficile, mais "chiant". Ca impose de mettre en place différents mécanismes de communication entre mes objets/classe et comme je considère ce projet comme terminé je n'ai pas tellement le courage de m'y remettre.

>Sinon je n'ai pas essaye ton jeu (je suis au boulot) mais il a l'air bien.
>(J'ai surtout apprecie que tu permettes de jouer "avec un seul bouton", ce qui est indispensable
>pour faire de bons scores ;o) ).

J'ai pas vraiment compirs...
Avec un seul bouton?

signaler à un administrateur
Commentaire de LeFauve42 le 06/08/2007 14:50:36

>>Sinon je n'ai pas essaye ton jeu (je suis au boulot) mais il a l'air bien.
>>(J'ai surtout apprecie que tu permettes de jouer "avec un seul bouton", ce qui est indispensable
>>pour faire de bons scores ;o) ).
>
>J'ai pas vraiment compirs...
>Avec un seul bouton?

Ce que je veux dire c'est que sauf erreur de ma part, tu consideres la partie finie (et gagnee) quand le nombre de cases enlevees est egal au nombre total de cases moins le nombre de bombes.

Il n'est pas obligatoire de placer les drapeaux au demineur. Tu peux juste oter toutes les cases sauf celles ou il y a des bombes, et a la fin tu as gagne. C'est bien plus rapide (bien que ca demande un temps d'adaptation) mais la plupart des clones du demineurs ne supportent pas cette option.

Par contre, est-ce que tu affiches les bombes quand le joueur gagne de cette facon ? (ok, j'ai la flemme de replonger dans le source ;o) ).

Pour les amateurs de demineur "a un bouton", j'ai fait une version en ligne il y a quelques annees (ce fut mon premier programme en Java...script (lol)). Le principal avantage est de pouvoir se mesurer aux autres visiteur (J'ai toujours trouve terne l'ecran highscores du demineur de base avec invariablement le meme nom repete 3 fois...).
Avec IE et XP SP2 ca rale un peu quand je fais un prompt pour demander le nom a la fin de la partie, mais sinon il marche toujours...
C'est ici:
http://www.fantasy-lands.net/Games/Mines/

Eric

NB: Si vous etes assez a raler, il n'est pas impossible que je rajoute le support du deuxieme bouton un de ces jours (et pourquoi pas celui du milieu ;o) ) mais comme je l'ai deja dit, ce n'est pas la peine d'esperer battre un record en jouant avec les drapeaux :oD

signaler à un administrateur
Commentaire de dwogsi le 06/08/2007 15:01:25

>Ce que je veux dire c'est que sauf erreur de ma part, tu consideres la partie finie (et gagnee)
>quand le nombre de cases enlevees est egal au nombre total de cases moins le nombre de bombes.

A oui ok.
En effet je vérifie si la partie est terminée de cette manière, ça me paraissait de loin la méthode la plus logique. Les flag c'est optionnel à mon gout.

Sinon amusante ta version en JS. Mais le support du second bouton ça me parait un peu hasardeux... Sous IE ca peu passer mais sous FF, par exemple, il me semble que tu ne peux pas lui interdire d'afficher le menu contextuel.

signaler à un administrateur
Commentaire de LeFauve42 le 06/08/2007 15:13:38

>Les flag c'est optionnel à mon gout.

Exactement ! :o)

>Sinon amusante ta version en JS.

Merci :o) mais j'ai fait ca en 2000, et c'etait vraiment mon premier prog en Javascript :o)

>Mais le support du second bouton ça me parait un peu hasardeux...
>Sous IE ca peu passer mais sous FF, par exemple, il me semble que tu ne peux pas lui
>interdire d'afficher le menu contextuel.

C'est possible... Et en plus, les differents navigateurs ne renvoient pas les memes valeurs pour le code du bouton droit...
C'est ce genre de problemes qui m'ont arrete, en plus du fait que je deteste quand un webmaster se croit malin en empechant le clic droit sur ses page (comme si ca empechait quelqu'un de motive de regarder ses images/sources... lol).

Enfin, vu la frequentation de mon demineur ces derniers mois, ca ne vaut peut-etre pas la peine que je me prenne la tete :o)

A+,
Eric

signaler à un administrateur
Commentaire de sankasssss le 06/08/2007 17:18:23

très bonne source,
j'ai bien aimer tout les commentaires qui m'on permit de faire une tres bonne révision en vue de mes future examen de repeche :'(

j'ai bien aimer en faire une partie meme si la petite fonction du clique sur les 2 bouton, du jeux d'origine, m'on un peux manquée pour pouvoir atteindre mes performance habituelle ^^

bonne continuation

signaler à un administrateur
Commentaire de dwogsi le 06/08/2007 17:44:31

Merci.

>j'ai bien aimer en faire une partie meme si la petite fonction du clique sur les 2 bouton, du jeux
>d'origine...

Les deux boutons? Lesquel?

signaler à un administrateur
Commentaire de sankasssss le 06/08/2007 17:49:40

Prenon un exemple tu as le chiffre 2 sur une casse,
tu as 2 drapeau à l'entour de cette case,
tu clique avec le bouton gauche et droit de la souris en meme temp et si les drapeau étais bien placer ca decouvre toute les cases avoisinante.
Ca fait un peux plus rapide que de cliquer sur chacune des case...
bonne continuation ;)

signaler à un administrateur
Commentaire de sankasssss le 06/08/2007 17:50:57

P.S. : c'est sur le chiffre qu'il faut cliquer avec les 2 bouton ^^

signaler à un administrateur
Commentaire de LeFauve42 le 06/08/2007 17:52:29

>Ca fait un peux plus rapide que de cliquer sur chacune des case...

J'utilisais ca avant (tu peux meme cliquer sur le bouton du milieu pour le meme resultat ce qui est encore plus rapide ;o) ), mais comme indique plus haut, c'est extremement lent compare a l'option qui consiste a ne pas mettre de drapeaux du tout :o)

Eric

signaler à un administrateur
Commentaire de sankasssss le 06/08/2007 18:02:46

lol oui c'est possible, chacun ses méthodes ^^
mes sur de grand jeux je trouve la technique des drapeaux plus visuelle et avec moins de droit a l'erreur une fois placé...
Mais bon ce n'est pas sur la technique que nous en avons hein ;)
juste sur le fait d'imité notre bon vieux démineur, jeux qui restera culte.
Tien au fait, savez-vous qu'il y a un code pour tricher dans le démineur de windows lol

signaler à un administrateur
Commentaire de dwogsi le 06/08/2007 20:48:12

Ouai il existe en effet un code, faisant apparaître un pixel en haut à gauche de l'écran. Noir ou blanc en fonction du contenu de la case survollée. Mais j'ai jamais réussi à le faire fonctionner.

signaler à un administrateur
Commentaire de sankasssss le 06/08/2007 21:10:17

Oui c'est rien de bien exeptionnelle, mais ca m'a tjs étonner pour un jeux qui ce trouve dans windows...
il suffit de rentrer xyzzy enter puis maj et un point blanc apparaitra dans le coin supérieur droit de l'écran (faut voir le papier paint du bureau pour cela)

aller bonne fin de journée et thanks pour cette source compréhensible

signaler à un administrateur
Commentaire de sankasssss le 06/08/2007 21:11:48

excuse c'est le coin gauche ^^
dur we... bye

signaler à un administrateur
Commentaire de sankasssss le 06/08/2007 21:20:58

et il manque une lettre dans le code xyzzyx (ca fait longtemps)
mais bon on s'en fous en faite...

signaler à un administrateur
Commentaire de GodConan le 07/08/2007 07:59:18

Le code est richement commenté ;o) et c est trés bien (il n y en a jamais trop) ceci dit dommage qu il n y ai pas de javadoc.

Pour ce qui est des class !! et oui c est évident les class locale devrai etre externes seul la class timer et la class listener ont un reel interret à se trouver en local. Pour ce qui est de la communication entre les class!!  Es ce vraiment un probleme!! Le java est orienté Object il faut donc ;o) faire de la POO .... sinon ben faut rester au C ...

;o) pour ce qui est du jeu lui meme bien que la source soit propre il manque un peu de finition ;o) je trouve le feedback souris plus que moyen (ma reference etant l original sous windows) plusieurs option comme le click droit et gauche sont simpatique...
Enfin! le projet etant fini à quoi bon!! ;o)

Prend tout de mem l habitude de faire plusieurs fichier voir meme package meme pour quelque ligne de code surtout si tu continu en JAVA;o) ... C est une discipline toujour payante à la longue...

Trés bonne idée de source

signaler à un administrateur
Commentaire de dwogsi le 07/08/2007 10:21:49

>Pour ce qui est des class !! et oui c est évident les class locale devrai etre externes seul la
>class timer et la class listener ont un reel interret à se trouver en local. Pour ce qui est de la
>communication entre les class!!  Es ce vraiment un probleme!! Le java est orienté Object il faut
>donc ;o) faire de la POO .... sinon ben faut rester au C ..

Bon et bien voilà, finalement j'ai éclaté ma source en différentes class suivant tes conseils.
En passant, je n'ai jamais dit que la communication entre class était un problème, j'ai simplement dit que je n'avais pas le courage de le faire. Je n'en suis pas à mes première heures en POO (dans d'autres langages) et ce genre de choses n'est pas un problème.

>;o) pour ce qui est du jeu lui meme bien que la source soit propre il manque un peu de finition
>;o) je trouve le feedback souris plus que moyen (ma reference etant l original sous windows)
>plusieurs option comme le click droit et gauche sont simpatique...

La je t'arrête tout de suite, d'une part j'ai clairement indiqué que mon projet était inspirée du démineur de windows mais je n'ai jamais dit qu'il en était la copie conforme. En ce sens, je suis bien libre d'y intégrer les fonctionnalités de mon choix. D'autre part, ceci est une source et c'est donc modifiable à souhait. Si quelqu'un y voit quelque chose qui manque, il peut très bien l'y ajouter.

>Prend tout de mem l habitude de faire plusieurs fichier voir meme package meme pour quelque ligne
>de code surtout si tu continu en JAVA;o) ... C est une discipline toujour payante à la longue...

J'en prend note.
Ceci-dit, j'avoue ne pas encore avoir bien saisit à quoi servait un package. Mais je vais relire mes doc. Trouve-t-on un équivalent du package en C++? Ca m'aidrait à comprendre ce que c'est...

signaler à un administrateur
Commentaire de LeFauve42 le 07/08/2007 10:51:28

Le cheat code pour le demineur de windows est en effet rigolo, mais je ne pense pas qu'on puisse vraiment faire un bon temps en l'utilisant :o)

Cependant, ca me rappelle une idee que j'ai eu sur le demineur, mais que j'ai laisse tombe (parce que ca doit pas etre facile :o) ):
Le truc enervant, surtout avec des grosses maps est que des fois, il faut y aller au pif (par exemple qunad il reste 4 cases dans un coin).
Mon idee etait de bannir l'effet chance. Je veux dire que quand il est impossible de savoir si une case a une bombe ou pas, il faudrait qu'on ne perde jamais, quite a deplacer dynamiquement la bombe quand on clique dessus (si la bombe a une chance sur deux d'etre sur deux cases, si on clique sur l'une, la bombe est automatiquement placee sur la deuxieme).
Evidemment, c'est plutot galere a implementer, mais on peut rever :o)

La seule chose que j'ai fait qui s'en rapproche jusque la est d'empecher de perdre sur le premier coup (en fait si ca explose au premier clic, je relance le calcul de la position des bombes jusqu'a ce que la case soit vide, et je traite le clic. comme ca le joueur de voit rien).

A+,
Eric

signaler à un administrateur
Commentaire de dwogsi le 07/08/2007 10:57:07

J'ai lut quelque part que certaines versions du démineur proposent également de résoudre automatiquement les cas solvable uniquement par chances. C'est certainement pas simple à détecter automatiquement mais si ya des sources pour ces versions ça peut être intéressant de voir ce que ça donne niveau algo.

signaler à un administrateur
Commentaire de GodConan le 07/08/2007 15:06:18

;o) pas vraiment ;o) crédible ;o) comme idée car de toute facon c est un jeu lié à la chance... ;o) attendu qu au début de toute facon les premiers click doivent etre fait au hazard ;o)... de plus de la capacité de décider sur les dernier coup depende reelement les score les meilleurs ;o) ... cela fait partie du jeu ... enfin ;o) aprés c est de la philo ... ;o)

Les package sont tres utile à l organisation de tes class il existe plusieurs facon de les nommer et de les organiser le plus simple etant de se calquer sur les outils que tu utilise déja ;o) comme le java lui meme ou eclipse apr example ;o) ...
évidement pour 6 ou 7 class cela peu parraitre superflu ;o) mais dans un projet ;o) il n est pas rare d avoir plusieurs centaines de class à gerrer ;o)...

je ne me rapelle pas avoir vu l equivalent en C++ mais à l époque je struturai mes sources dans plusieurs répertoire qd meme ;o) ...

GL et bonne prog...


signaler à un administrateur
Commentaire de IMENBA le 20/10/2007 21:41:28

SANS DOUTE C'EST UNE BONNE SOURCE .
MAIS ELLE SERA MIEU SI T AS AJOUTE UNE HORLOGE .
EN TOUT CAS T ES GENIAL,BONNE CONTUNIATION.

signaler à un administrateur
Commentaire de dwogsi le 21/10/2007 19:31:09

Il me semble avoir déjà dit qu'il ne s'agissait pas de la copie conforme du démineur de Windows. Et j'ai conclu la dessus :
> Et si on souhaite vraiment s'approcher du classique démineur de Windows,
> on pourra souhaiter ajouter les compteurs de mine et de temps sur l'affichage

Mais merci pour ton commentaire.

signaler à un administrateur
Commentaire de Mausinator le 20/12/2007 18:39:31

>Je crois qu'il se produit quelques erreurs lorsque l'utilisateur ne saisit pas
>des chiffres dans le dialogue de personnalisation du type partie. Ce serait donc >une chose à améliorer.
>Et si on souhaite vraiment s'approcher du classique démineur de Windows,
>on pourra souhaiter ajouter les compteurs de mine et de temps sur l'affichage.

Super bien documenté comme programme et donc facile à reprendre et modifier !
Chapeau !
Même si les classes sont longues, c'est un mal nécessaire.
J'ai vu bien des programmes ici non commentés ce qui n'est pas vraiment très pratique pour une compréhension rapide =/

Moi je dis bravo !

signaler à un administrateur
Commentaire de Mausinator le 12/01/2008 12:28:03

Une remarque après avoir modifié ce code :
la classe principale était effectivement bien chargée...
J'ai pu diviser le MainWindows en au moins 4 classes différentes.

Je maintiens mon compliment sur les commentaires qui m'ont bien facilité la tâche.

signaler à un administrateur
Commentaire de dwogsi le 12/01/2008 14:22:24

Pour éclater la classe MainWindow, c'est discutable. Je suis pas sûr que ce soit réellement justifiable. Pour les commentaires, j'aurais pu faire une javadoc ça aurait été encore mieux.

En tout cas merci pour ton commentaire.

signaler à un administrateur
Commentaire de dwogsi le 12/01/2008 14:24:16

Tiens maintenant que j'y pense, faudrait aussi revoir la visibilité des attributs de certaine class (privé/public) parce que pour MainWIndow par exemple c'est un peu n'importe quoi je trouve.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

unicode dans les JLabel [ par superromu ] Bonjour,J ainerais lire un fichier ecrit en unicode, et ensuite les afficher dans mes JLabels.le probleme est que je ne sais pas comment est enregistr lecture fichier [ par kramp ] j'ai besoin de lire un fichier à une ligne donnée sans avoir à lire les lignes d'avant pour avoir un accès rapide à l'information (mon fichier a été i liens sur fichier *.exe [ par clk ] g besion de faire des liens internet (en utilisant java, javascript ou php) vers des fichier ".exe" ki sont ds +sieurs répértoire!! Ecrire dans un fichier à partir d'un applet [ par Nicolas79 ] Voilà, je suis en train de mettre au point un compteur en Java. J'ai donc un fichier qui stock le nombre de visiteurs.Mon applet veut bien lire le con lire un fichier audio [ par bidules ] bonjour,j'aimerais lire un fichier audio dans un programme java et non dans une applet. Je sais que pour les applet il y a AudioClip mais pour un pgrm Creer un fichier texte avec createNewFile() [ par JavaSeb ] Salut tout le monde !Quel est le code pour créer un fichier texte est écrire une chaine de caractères dedans ???Merci !JSeb Accès à un fichier texte depuis 1 applet [ par JavaSeb ] Une applet peut accéder à un fichier texte stocké sur le serveur (et même dans le même dossier) afin d'en llire le contenu ?Si oui, quelles sont les c [java]creation de fichier ... [ par suber600 ] voila je dois creer un fichier composé d entier et de double. le fichier ne doit pas etre lisible par un editeur de texte comment dois je faire ? je v [C++] lecture d un fichier java par un prog C++ ? [ par suber600 ] voila le but: creer un fichier en java ( mais au niveau byte ... c est a dire avec le bloc note on comprend rien) et le faire relire par un programme Exploitation du fichier binaire de validation d'un formulaire [ par SONY30 ] J'aimerai savoir si quelqu'un s'était déjà penché sur l'exploitation du fichier binaire en validation d'un formulaire lors d'un transfert d'image par


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,75 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.