IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Code source d'un jeu de pendu java


Sujet :

avec Java

  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 432
    Par défaut Code source d'un jeu de pendu java
    Bonjour,
    je ne comprends pas le code de la classe word du projet avec le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    	int i = (int)(Math.random() * 100000);
    		while(i > 336529){
    			 i /= 2;
    		}
    	try {
    			LineNumberReader fnr = new LineNumberReader(new FileReader(new File("file/word.txt")));
    			int carac;
    			this.word = "";
    			this.secretWord= "";
    			while((carac = fnr.read()) != -1){
    				if(fnr.getLineNumber() == (i+1))
    					break;
     
    				else{
    					if(fnr.getLineNumber() == i){
    						this.word += (char)carac;						
    					}
    				}
    			}
    merci d'avance

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Quelles sont les lignes qui te posent problème ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    D'un autre côté ce code est tellement abscons que ne pas le comprendre n'est pas si étonnant.

    1. Dans cette partie :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      int i = (int)(Math.random() * 100000);
      		while(i > 336529){
      			 i /= 2;
      		}
      i ne peut être supérieur à 100_000 (puisque Math.random() est compris entre 0 et 1.0 inclus (cf la doc)), donc ne risque pas d'être supérieur à 336_529 (va savoir à quoi cette valeur peut correspondre...)
    2. Quant à la lecture, le code qui suit, elle consiste à lire le fichier caractère par caractère jusqu'à ce qu'on atteigne la ligne de numéro immédiatement supérieur à i et lorsqu'on est sur la ligne de numéro i, on concatène les caractères lus. Chose qu'on pourrait simplement faire, et plus efficacement, comme ça :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      String word = Files.lines(Paths.get("file/word.txt")).skip(i).findFirst().orElse("").
      qui correspond en clair à lire le fichier lignes à lignes en passant les i premières lignes et renvoyer la première ligne trouvée ou chaîne vide si en trouve pas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Vu qu'il s'agit d'un jeu de pendu et que le fichier s'appelle word.txt, je suppose que i est utilisé pour obtenir un mot aléatoire au sein d'un dictionnaire. Ce dictionnaire étant le fichier word.txt qui contient un mot par ligne. On prend donc la i-ème ligne = le i-ème mot.

    Citation Envoyé par joel.drigo Voir le message
    i ne peut être supérieur à 100_000 (puisque Math.random() est compris entre 0 et 1.0 inclus (cf la doc)), donc ne risque pas d'être supérieur à 336_529 (va savoir à quoi cette valeur peut correspondre...)
    Donc suivant cette logique, la valeur 336 529 doit correspondre au nombre de mots dans ce dictionnnaire. Et la boucle est sensée empecher i d'être plus grand que cette limite. Cependant, comme expliqué par Joel, Il n'est pas possible pour i d'être plus grand que 100 000. La boucle est donc inutile, de plus il y a 236 529 mots qui sont inatégnables.

    Un bon design serait de lire le nombre de lignes du fichier (pour connaitre le nombre de mots) et de stocker cette valeur dans une variable. Puis de tirer un nombre i aléatoire entre 0 et la valeur de cette variable.

Discussions similaires

  1. Code source d'un jeu en Pascal
    Par kiroxboo dans le forum Pascal
    Réponses: 10
    Dernier message: 24/03/2018, 11h20
  2. code source d'un jeu en c
    Par tenderstoune dans le forum C
    Réponses: 4
    Dernier message: 06/11/2007, 15h42
  3. Code source jeu Java ME
    Par apone dans le forum Java ME
    Réponses: 3
    Dernier message: 05/04/2007, 11h37
  4. Réponses: 8
    Dernier message: 12/06/2006, 22h40
  5. [Info]Perte de code source java peut'on le retrouver ?
    Par Zapan dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/01/2006, 19h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo