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 :

Jeu de morse


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 59
    Par défaut Jeu de morse
    Bonjour tous le monde,


    Je me permet de vous solliciter votre aide. Je dois créer un système assez basique de morse. J'ai bidouillé un peu en allant sur internet. J'ai pu faire un peu près 65% de travail. Le travail consiste à prendre les valeurs entre sur le terminal, couper au niveau de espace puis ajouter "Stop.". Ainsi je tape "Bonjour cava les internautes". Le programme doit affcher "Bonjour Stop. cava Stop. les Stop internaute Stop." Le mien il m'affiche un stop de plus. Pouvez-vous me dire ou se trouve ma faute ?

    je vous remercie d'avance.

    Cordialement

    Tuba uba
    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
     import java.util.*;
     
    public class Emorse{
        public static void main(String[] args){
    	String messageDemande, messageExtrait, messageEnregistre ;Scanner demande = new Scanner(System.in);
    	messageEnregistre = " ";
    	int indexOfSpace = 0;
    	int nextIndexOfSpace = 0;
    	System.out.println("Saisir le message");
    	messageDemande = demande.nextLine();
     
    	nextIndexOfSpace = messageDemande.indexOf(" "); //  ici je verifie  s'il a y un espace et j'enleve l'espace
    	if(nextIndexOfSpace == 0){
    	    messageDemande  = messageDemande.substring(nextIndexOfSpace+1);
    	    };
     
     
    	while(nextIndexOfSpace !=-1){
     
    	    nextIndexOfSpace = messageDemande.indexOf(" ", indexOfSpace);
    	    	System.out.println(nextIndexOfSpace);
     
    	    if(nextIndexOfSpace == -1){
     
     
    	    messageExtrait = messageDemande.substring(indexOfSpace);
    	    messageEnregistre = messageEnregistre + messageExtrait+ " Stop. ";
    	    break ;
    	   }
               else{
     
    	    messageExtrait = messageDemande.substring(indexOfSpace, nextIndexOfSpace+1);
    	    messageEnregistre = messageEnregistre + messageExtrait +"Stop. ";
    	}
     
     
    	indexOfSpace = nextIndexOfSpace+1;
     
     
     
     
    	};
    	System.out.println(messageEnregistre);
        }
    }
    Réponse donne :
    bonsoir Stop. je Stop. suis Stop. null Stop. est Stop. meilleur Stop. Stop.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    ta boucle a plus d'un endroit qui produit des stops. Pour ce genre de choses on a typiquement besoin de produire des stops dans la boucle, ainsi que soit avant la boucle soit après la boucle.

    Mais toi tu en a deux dans la boucle. C'est un moyen quasi-sûr d'avoir certains cas limites qui en produisent deux. Ici, le cas de la fin.

    Pour éviter que ça arrive, le mieux est de n'avoir qu'une seule création de stops dans la boucle. Éventuellement tu pourras avoir besoin d'en mettre d'autres avant/après.

    Indice supplémentaire : tu lis trop en avance. Tu boucles déjà sur le fait que nextIndexOfSpace n'est pas -1. Pas besoin de faire en plus un if dessus. Il faut simplifier.

    Éventuellement, si tu as peur des espaces au début ou à la fin, tu peux commencer par les enlever.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  2. Réponses: 7
    Dernier message: 18/06/2003, 15h20
  3. [socket][tcp] jeu en reseau
    Par souris_sonic dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2003, 07h31
  4. [C réseau débutant] jeu
    Par Heimdall dans le forum Développement
    Réponses: 6
    Dernier message: 22/05/2003, 13h58
  5. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

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