CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java/Débutant]Jeu du Plus ou Moins

Rimano
Rimano
Niveau 6
29 juin 2014 à 19:26:25

Bonjour ( Bonsoir ).
Je débute en Java et j'ai, cet après-midi, terminé un petit jeu ( vraiment petit ), le jeu du plus ou moins.

Le principe est simple et je pense que tout programmeur le connait. Mais on ne sait jamais alors je vais l'expliquer :
Un nombre est généré aléatoirement entre 1 et 100, vous devez deviner ce nombre et à chaque réponse proposées, le programme vous répond soit "Plus grand !", soit "Plus petit ! ",soit que vous avez gagné : http://www.mediafire.com/download/x7w8eh4o41k9a9k/PlusOuMoins.zip

Je le poste ici pour obtenir des conseils sur ma manière de programmer. Je comprends que ce petit jeu ne soit pas l'un des plus poussés mais il faut bien commencer par quelque chose.

Bien que vous trouverez le code dans le .zip, je l'ai aussi hébergé sur Pastebin pour ceux qui n'ont pas la possibilité de le téléchargé :

http://pastebin.com/S2naQHjW
http://pastebin.com/EPaSR18Z
http://pastebin.com/NGK7db7B
http://pastebin.com/WyhFJG9C

J'attends donc des conseils, des remarques sur les erreurs que j'ai dû commettre. Certes, le programme fonctionne parfaitement. Mais est-ce que le code n'est pas brouillon, mal organisé ou autre chose ?

Merci. ;)

linux13-04
linux13-04
Niveau 8
29 juin 2014 à 20:01:30

Si il n'y a pas de nombre d'essais maximum, le "dur" n'est pas plus "dur" que le facile, juste plus long

Rimano
Rimano
Niveau 6
29 juin 2014 à 20:31:33

Pas bête, je vais le rajouter.
Par contre, une fois les changements terminés, je ne les hébergerai que sur Pastebin pour ne pas avoir à tous re-upload.

Merci.

Rimano
Rimano
Niveau 6
29 juin 2014 à 20:34:21

Excusez-moi du double post.
Mais si je fais comme le dit linux13-04. Si j'instaure un système de coups limités qui diminuent avec la difficulté, dois-je aussi conserver la variation entre la valeur maximum et minimum du nombre généré aléatoirement (0-100, 0-1000, 0-10000) ?

[-Shana-]
[-Shana-]
Niveau 10
29 juin 2014 à 23:56:23

JPanel fenêtreMenu = new JPanel();

:d) Depuis quand on peut utiliser des caractères spéciaux ? (ê) :doute:

Rimano
Rimano
Niveau 6
29 juin 2014 à 23:57:56

Les caractère spéciaux fonctionnent très bien chez moi. Après, je ne sais pas si c'est bon ou pas de ne pas les utiliser ?

Bunyan
Bunyan
Niveau 17
30 juin 2014 à 00:09:13

@Shana : depuis pas mal de temps. La norme Java précise que les fichiers sont en UTF-8, et que tout caractère supporté par l'UTF-8 doit être compris et bien interprété par le compilateur... ce qui amène a des fichiers WTF avec les caractères spéciaux "inverse le sens de lecture" et autre du même tonneau.

@Rimano : ils fonctionnent très bien, et c'est normal. Par contre, il est déconseillé de les utiliser si le programme à la moindre chance d'être retouché par une autre personne : cas des claviers différents.
De base, il est plus commun d'écrire son code en anglais. C'est compréhensible pas tout développeur, et utilisable de même.

Rimano
Rimano
Niveau 6
30 juin 2014 à 00:30:05

D'accord. Mais dans un programme comme celui-ci où je code seul et ne demande conseil que sur un forum français, je peux me permettre l'usage du Français.

Par contre, en travail de groupe ou dans un projet open-source, l'anglais est à valoriser.

Merci.

PS : Grâce à la remarque de Linux, j'ai effectué pas mal de modifications sur les classes "Jeu" et "MoteurJeu".
Les modifications sont visibles sur Pastebin.

[-Shana-]
[-Shana-]
Niveau 10
30 juin 2014 à 03:10:17

@Bunyan :d) Ah ok, je suis resté bloqué au temps où le compilo t'insultait si tu osais faire ca :hap: ...

ZokweZo
ZokweZo
Niveau 9
30 juin 2014 à 05:39:02

Au premier abord, j'ai une remarque à faire concernant les noms de variables et commentaires.

Par exemple pourquoi mettre un nom de variable qui ne veut rien dire et de le commenter pour expliquer à quoi il correspond au lieu de directement bien nommer ta variable ?

Pour moi par exemple ça :

Menu parent; // Référencie le menu.
Jeu parent2; // Référencie le jeu

deviendrait plus un truc comme ça :

Menu fenetreDuMenu;
Jeu fenetreDeJeu;

De même si tu as autant de commentaires, c'est que ton codes n'est pas clair. Essaie de découper tes méthodes en sous méthodes et de donner des noms clairs pour que l'on comprenne tout de suite la logique.

par exemple au lieu de ça :
// Vérifie s'il reste 1 coups à jouer, sinon termine la partie.
if (coups > 0) {

tu mets ça :
if(partiePasFinie())
....

private boolean partiePasFinie(){
return coups>0;
}

En tout cas j'espère que ça te sera utile et bonne continuation pour ton apprentissage !

Rimano
Rimano
Niveau 6
30 juin 2014 à 12:10:39

Merci énormément pour cet avis.
Alors pour le nom des variables, je suis d'accord.

Par contre, est-ce que créer des variable de type booléan en plus ne serait pas plus brouillons ?

Rimano
Rimano
Niveau 6
30 juin 2014 à 16:56:48

Ah d'accord ! Je n'avais pas cette vision de la chose !
Encore merci.

Rimano
Rimano
Niveau 6
30 juin 2014 à 19:48:20

Une question par rapport à la règle du DRY.

Dans cette portion de code de la classe MoteurJeu :

if(réponseInt > réponseJuste) {
fenêtreJeu.indication.setText("Plus petit !");
fenêtreJeu.réponse.setText("");
coups -= 1;
fenêtreJeu.affichageCoups.setText("Il te reste " + coups + " coups à jouer.");
}
else if(réponseInt < réponseJuste) {
fenêtreJeu.indication.setText("Plus grand !");
fenêtreJeu.réponse.setText("");
coups -=1;
fenêtreJeu.affichageCoups.setText("Il te reste " + coups + " coups à jouer.");
}

Serait-ce mieux de faire une méthode pour :

fenêtreJeu.réponse.setText("");
coups -= 1;
fenêtreJeu.affichageCoups.setText("Il te reste " + coups + " coups à jouer.");

Même si je ne le répète que 2 fois ?
Ou je laisse le code tel quel ?

J'espère que j'ai raison, comme ça je serais sûr d'avoir compris le DRY. :)

Rimano
Rimano
Niveau 6
30 juin 2014 à 21:01:38

Ces trois lignes ne sont pas toujours exécutées, mais seulement si l'utilisateur se trompe de nombre.

Mais j'ai mal saisi le terme "embranchement".
Je suis au début de mon apprentissage.

En tout cas merci des conseils et des références ;)

Caletlog
Caletlog
Niveau 10
30 juin 2014 à 21:37:55

Un embranchement c'est une structure if/else ou un switch.

Rimano
Rimano
Niveau 6
30 juin 2014 à 21:43:49

Ah d'accord. J'appelais ça un condition :rire:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment