Jump to content

Recommended Posts

  • Chaque disque sera composé d'un alphabet désordonné.
  • Le cylindre sera composé de n disques.
  • On aligne nos disques afin de former sur une même ligne notre message en clair.
  • On transmet une autre ligne à notre interlocuteur.

pict5.gif

Le fait de connaître l'ordre et la composition des disques, permettra à notre interlocuteur d'obtenir la même disposition, et donc de retrouver le message d'origine à l'aide du message codé.

Le projet est très bien guidé, tu as toutes les étapes d'implémentation ;)

Share this post


Link to post
Share on other sites

Bonjour,

 

J'ai une question à propos de la dernière phase de la partie 2, le déchiffrage du texte. Le texte chiffré comporte 35 éléments tandis que la clé en fait 36. Vient donc 2 questions :

- Doit-on avoir une clé égale au texte en terme de longueur ?

- Peut-on avoir une clé supérieur ou inférieur au texte en terme de longueur ?

Share this post


Link to post
Share on other sites

Bonjour à tous.

 

Ma question concerne la fonction "keyOK".

Si les conditions sont respectées, la fonction est censée return True.

Cependant, si ces dernières ne sont pas respectées, est-ce que la fonction retournera alors False, ou rien du tout ?

 

Merci d'avance !

Share this post


Link to post
Share on other sites

Bonjour,

 

A toi de voir si tu veux implémenter un 

else:

        return False

 

sinon ta fonction retournera un None.

Cela ne changera rien sachant que tu vérifieras que la condition soit True dans une autre fonction pour exécuter les opérations (None ou False reviennent au même puisqu'on attend un True).

Share this post


Link to post
Share on other sites

Bonjour,

 

Concernant la première fonction convertLetters :

"Une fonction « convertLetters(text) » où text est une chaîne de caractères, et qui la retournera après avoir supprimé les espaces, signes de ponctuations, lettres accentuées, etc"

Faut il que ce soit l'utilisateur qui rentre une phrase ? Ou alors on l'a prédéfini ?

 

Merci d'avance,

Cordialement

Share this post


Link to post
Share on other sites

Bonjour,

 

Comme tu peux le constater dans la suite du sujet ainsi que dans l'exemple proposé, le texte est passé en paramètre.

A toi de voir si tu veux faire quelque-chose de plus user friendly ; le texte est passé en paramètre de cipherText(cylinder,key,text) puis vérifié à l'aide de convertLetters(text).

Share this post


Link to post
Share on other sites

Comme indiqué par Monsieur GODEFROY :

 

Bonjour,

 

Effectivement le sujet demande la suppression des caractères accentués. Après libre à vous de faire un peu mieux en remplaçant un caractère accentué par la lettre non accentuée correspondante. Les disques étant en majuscules, il est naturel de convertir les textes en ce sens.

 

 

Les supprimer suffit, libre à toi d'aller plus loin en les remplaçant.

Share this post


Link to post
Share on other sites

Bonjour,

 

je suis en Virtual, sur notre sujet (qui semble exactement le même qu'ici) le nombre de lettre du message codé à déchiffrer (et donc le nombre de "wheels" du cylindre) se monte à 35, alors que la clef fournie comporte 36 entiers.

 

ça m'a pas empêché de décoder le message en bidouillant, mais donc c'est volontaire, erreur sur le tp ?

 

Merci d'avance.

 

Thierry.

Share this post


Link to post
Share on other sites

Bonjour Thierry,

 

Il me semble que monsieur Godefroy a déjà répondu à cette question : 

 

Bonjour Guilhem,

 

vu notre implémentation il est nécessaire que la clé comporte plus de disques que notre texte comporte de lettres.

 

 

En espérant vous avoir aidé, je vous souhaite un bon week end !

 

Enzo

Share this post


Link to post
Share on other sites

Bonjour, 

 

J'ai une question je ne comprend pas du tout ce qu'il faut faire dans la fonction "keyOK" ?

"Une fonction « keyOK(key,n) » où key est une liste d’entiers et n un entier strictement positif. Elle retournera True si la liste est une permutation de tous les entiers compris (au sens large) entre 1 et n."

 

Cordialement,

Adrien OBERT

Share this post


Link to post
Share on other sites

Bonjour Adrien,

 

Cela sginifie que cette fonction retourne True si la liste passée en paramètre contient en un seul exemplaire tous les entiers compris (au sens large) entre 1 et n, et ne contient rien d'autre. Elle retournera évidemment False sinon.

Je te renvoie au cours 1SET pour la définition du mot permutation qui a l'air de t'avoir posé problème.

Share this post


Link to post
Share on other sites

Bonsoir,

 

J’ai un problème de compréhension des 2 fonctions suivante :

 

 

·         Une procédure « displayCylinder(mySurface,cylinder,i) » où mySurface est la surface courante, cylinder un dictionnaire représentant un cylindre de Jefferson et un numéro de disque. Elle affichera au “bon endroit“ sur la surface le ième disque du cylindre.
·         Une procédure « displayCylinders(mySurface,cylinder) » où mySurface est la surface courante et cylinder un dictionnaire représentant un cylindre de Jefferson. Elle affichera sur la surface tous les disques du cylindre.

 

Je suppose que l’une appelle l’autre, mais j’ai du mal à voir comment on peut définir l’emplacement d’affichage une fois que la clé est définie avec ces fonctions puisqu’elles n’ont pas la clé en paramètre ?

Ou est-ce que j’ai mal interprété les fonctions ?

 

Merci d’avance

Share this post


Link to post
Share on other sites

« rotateCylinder » permet l’affiche uniquement d’un disque d’un cylindre (en fonction de i) alors que « rotateCylinders » doit gérer l’affichage de tous les disques d’un cylindre.

Je ne crois pas qu’il y a directement une fonction pour les flèches dans pygame, il faut les faire avec des traits.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×