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 :

Problème de compilation


Sujet :

avec Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 60
    Par défaut Problème de compilation
    Bonjour,

    J'étais très content d'un de mes programmes, mais il n'était pas optimisé. J'ai arrangé ça, mais il y a plusieurs bizarreries. voici le nouveau code.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    package vraiGrandMaitrePendu;
     
    import java.util.Random;
    import java.util.Scanner;
     
    class MortPenduLove {
     
    	public static void main(String[] args) {
     
    		Scanner keyboard = new Scanner(System.in);
    		Random myRandom = new Random();
     
    		char Devine;
    		String Solution = "SolutionTemp";
    		String verifie = "MadameChantilly";
    		int RandomNumber = 0;
    		int Gagnerez = 0;
    		int Perdrez = 0;
    		char[] tabCharSolution;
    		char [] tabCharDevine;
    		char [] pr = new char  [8];
    		String [] tabMotSolution = {"vraiment", "affreux", "pareil", "mannequin"}; // c'est un pendu, donc il y avait vraiment beaucoup de possibilités (environ 100), j'ai tout raccourci.
     
    		while(true) {
     
    			RandomNumber = myRandom.nextInt(tabMotSolution.length) - 1;
     
    			Solution = tabMotSolution [RandomNumber];
     
    			tabCharSolution = Solution.toCharArray();
     
    			tabCharDevine = new char [Solution.length()];
     
    			for(int i = 0; i < Solution.length(); i++) {
    				tabCharDevine [i] = '*';
    			}
    			for(int i = 0; i < pr.length; i++) {
    				pr[i] = ' ';
    			}
     
    			System.out.println("Bienvenue au Pendasio, jeu du pendu!");
    			System.out.println("Pensez-y : pour vous aider, tous les mots avec accents");
    			System.out.println("(graves, aigus, circonflexes... cédilles..) ont été supprimés!");
    			System.out.println("Tous les mots à trouver sont exclusivement en minuscule.");
     
    			while(!verifie.equals(Solution) && Perdrez < 8) {
     
    				System.out.println("Choisissez une lettre.");
     
    				Devine = keyboard.findWithinHorizon(".", 0).charAt(0);
     
    				for(int i = 0; i < Solution.length(); i++) {
    					if(Devine == tabCharSolution [i]) {
    						tabCharDevine[i] = Devine;
    						Gagnerez = 1;
    					}
    				}
    				if(Gagnerez == 0) {
    					Perdrez++;
    				}
    				switch(Perdrez){
     
    				case 1:
    					pr[1] = '|';
    					break;
    				case 2:
    					pr[2] = '0';
    					break;
    				case 3:
    					pr[3] = '/';
    					break;
    				case 4:
    					pr[4] = '|';
    					break;
    				case 5:
    					pr[5] = '\\';
    					break;
    				case 6:
    					pr[6] = '|';
    					break;
    				case 7:
    					pr[7] = '/';
    					break;
    				case 8:
    					pr[8] = '\\';
     
    				}
    				System.out.println(" ____________");
    				System.out.println("|           " + pr[1]);
    				System.out.println("|           " + pr[2]);
    				System.out.println("|          " + pr[3] + pr[4] + pr[5]);
    				System.out.println("|           " + pr[6]);
    				System.out.println("|          " + pr[7] +  " " + pr[8]);
    				System.out.println("|");
    				System.out.println("|_______________");
    				System.out.println(tabCharDevine);
     
    				Gagnerez = 0;
    				verifie = new String( tabCharDevine );
    			}
    			System.out.println();
    			if(Perdrez < 8) {
    				System.out.println("Héehéhé le chocolat, c'est bon pour patatra!");
    			} else {
    				System.out.println("Désolé... la réponse était : " + Solution + " Mais on recommence?");
    			}
    			System.out.println();
    			System.out.println();
    			Perdrez = 0;
     
    			for(int i = 0; i < pr.length; i++) {
    				pr[i] = ' ';
    			}
     
    		}
    	}
     
    }
    énumérations des bizarreries.

    - il souligne la déclaration de la classe MortPenduLove en rouge. c'est la première fois que ça m'arrive.

    - quand je force l'execution du code, tout fonctionne jusqu'à que je tape une lettre au clavier.
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 8 out of bounds for length 8
    at vraiGrandMaitrePendu/vraiGrandMaitrePendu.MortPenduLove.main(MortPenduLove.java:95)
    J'ai plusieurs suspects.
    voici la modification que j'ai fait pour optimiser le code :
    avant, pour afficher le nombre d'erreurs qu'a fait l'utilisateur (que j'ai illustré en construisant un bonhomme qui se construit petit à petit :
    |
    0
    /|\
    |
    / \ faites-vous une idée avec l'ancienne version de mon code sous format zip que j'ai joint à ce message.)
    je l'avais fait avec une structure switch qui prenait beaucoup de place. Je l'ai réduit en utilisant les tableaux.
    Entre deux parties je réinitialise les tableaux pr qui permettent de redessiner le bonhomme en fonction des erreurs,
    et j'ai peur qu'il y ait un problème avec la longueur du tableau... (simple supposition insignifiante)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i = 0; i < pr.length; i++) {
    				pr[i] = ' ';
    			}
    - comme j'aime pouvoir faire des parties à l'infini sans relancer le programme, j'ai mis une boucle while(true) { ... }
    mais du coup comme j'ai importé un Scanner je ne peux pas le fermer à cause de la boucle infinie non?
    Si je ne ferme pas le Scanner, j'obtiens une notice keyboard is not closed.

    Merci de votre réponse.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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