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

Java Discussion :

Enigma machine disque


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut Enigma machine disque
    Bonjour a tous,

    Je travaille sur un project sur la machine Enigma. Un des exercise demande de changer sur un disque les lettres d'une place vers la gauche(je crois)

    Mon disque s'appelle Rotor1 et voici dessous sa description:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     private char[][] rotor1 = {{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}, 
                                     {'G', 'T', 'U', 'B', 'Z', 'Y', 'V', 'J', 'L', 'K', 'S', 'A', 'W', 'X', 'H', 'C', 'D', 'E', 'M', 'N', 'O', 'P', 'Q', 'R', 'I', 'F'}};
    Si mon code fonctionne comme demander, Rotor1 dois changer comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {{'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A'}, 
                                     {'T', 'U', 'B', 'Z', 'Y', 'V', 'J', 'L', 'K', 'S', 'A', 'W', 'X', 'H', 'C', 'D', 'E', 'M', 'N', 'O', 'P', 'Q', 'R', 'I', 'F', 'G'}};
    Ci-dessous est mon code pour que Rotor1 permute d'une place:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public void rotateRotor(char[][] aRotor)
        {
         int row = rotor1[0][1];
         int col = rotor1[1][0];
         for(row = 0; row < aRotor.length; row++)
         {    
            for(col = 0; col < aRotor[row].length; col++)    
            {  
              rotor1 = aRotor[row][col];
            } 
         }
    Je dois tester le code comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EnigmaMachine em = new EnigmaMachine();
    em.rotateRotor(em.getRotor1());
    Mais bien evidement quand je teste le code rien ne se passe.

    Est-ce quelqu'un aurrais une idee du problem

  2. #2
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    Citation Envoyé par cyrodil Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
         int row = rotor1[0][1];
         int col = rotor1[1][0];
    C'est bizarre : tu calcules tes index à partir du contenu de ton tableau ??? rotor1[0][1] vaut 'B' c'est à dire 66 ??? Tu es sûr que rien ne se passe, pas d'exception ?

    Le tableau est pratique pour stocker un ensemble de valeurs mais pas pour les déplacer, il vaudrait mieux une liste comme LinkedList (pour des insertions, suppressions à différentes positions).

  3. #3
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    En restant dans ton code complexe des tableaux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void rotateRotor(char[][] aRotor)
        {
         char carry;
         for(int row = 0; row < aRotor.length; row++)
         {    
            carry=aRotor[0];
            for(int col = 1; col < aRotor[row].length; col++)    
            {  
              aRotor[row][col-1]=aRotor[row][col];
            }
            aRotor[row][col-1]=carry;
         }

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    Cher Lorantus,

    Quand je compile ce code, un message d'error s'affiche sur la ligne carry = aRotor[0];

    le message d'error est le suivant : imcompatible type. found char[] but expected char




    Citation Envoyé par Lorantus Voir le message
    En restant dans ton code complexe des tableaux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void rotateRotor(char[][] aRotor)
        {
         char carry;
         for(int row = 0; row < aRotor.length; row++)
         {    
            carry=aRotor[0];
            for(int col = 1; col < aRotor[row].length; col++)    
            {  
              aRotor[row][col-1]=aRotor[row][col];
            }
            aRotor[row][col-1]=carry;
         }

  5. #5
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    Autant pou rmoi, j'ai pas fais de complie sur ce source -j'ai donné à titre d'info...

    comme dis l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char carry=aRotor[row][0];
    Mais, bon, on sait tous que tu as corriger cela par toi même... dans le cadre de ton exercice, dont la réponse dépasse de loin le copier-coller.

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    Cher Lorantus,

    Merci encore pour ton aide

    Je debute avec Java, le cours que je prends actuellement est vraiment trop pauvre

    J'ai recorriger mon code, mais quand je vais dans inspector mon array ne bouge pas, c'est toujours en position [0] avec la lettre A



    Citation Envoyé par Lorantus Voir le message
    Autant pou rmoi, j'ai pas fais de complie sur ce source -j'ai donné à titre d'info...

    comme dis l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char carry=aRotor[row][0];
    Mais, bon, on sait tous que tu as corriger cela par toi même... dans le cadre de ton exercice, dont la réponse dépasse de loin le copier-coller.

  7. #7
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    Cher jean.2edi,

    Malheureusement sur cet exercise je ne peux pas utiliser LinkedList, ce n'est pas dans mon cours

    Merci encore pour ton aide

    Citation Envoyé par jean.2edi Voir le message
    C'est bizarre : tu calcules tes index à partir du contenu de ton tableau ??? rotor1[0][1] vaut 'B' c'est à dire 66 ??? Tu es sûr que rien ne se passe, pas d'exception ?

    Le tableau est pratique pour stocker un ensemble de valeurs mais pas pour les déplacer, il vaudrait mieux une liste comme LinkedList (pour des insertions, suppressions à différentes positions).

Discussions similaires

  1. [WMI] répertorier les disques d'une machine
    Par guillaume16 dans le forum Windows
    Réponses: 5
    Dernier message: 17/11/2008, 17h14
  2. image disque machine
    Par c-top dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 05/06/2007, 12h02
  3. transférer le disque dur d'une machine vers une autre
    Par julien.63 dans le forum Debian
    Réponses: 2
    Dernier message: 16/03/2007, 14h39
  4. [Disque dur]Trois disques durs dans une même machine.
    Par Scurz dans le forum Composants
    Réponses: 24
    Dernier message: 25/08/2006, 18h19
  5. Comment connaitre les disques dur d'une machine dans un code ?
    Par GeekettePower dans le forum Langage
    Réponses: 3
    Dernier message: 27/06/2006, 00h43

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