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

JavaScript Discussion :

[Ludique] Mini-jeu : épisode 3 (déchiffrage de code, niveau : facile)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut [Ludique] Mini-jeu : épisode 3 (déchiffrage de code, niveau : facile)
    Bon allez zou, on en ressert une louche à ceux qui avaient aimé

    (pour jeter un oeil aux deux précédents épisodes de cette époustouflante saga () c'est par ici et par là)

    Quoi ? Comment ? Qui a dit "Le nommage des variables et des fonctions, c'est pas important pour la compréhension du code" ?

    Objectif : modifier une ligne (voir commentaire) dans la fonction correction pour qu'elle corrige efficacement, c'est-à-dire que les mots contenus dans le tableau mots soient bien affichés comme attendu (voir plus bas).
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function correction() {
       var mots = ["mageur", "traget", "magestueux"];
       var resultat = mots;// <<< ici
       alert("Avant correction : \n" + mots.join("\n") + "\n\nAprès correction : \n" + resultat.join("\n"));
    }
    Résultat attendu dans l'alerte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Avant correction : 
    mageur
    traget
    magestueux
     
    Après correction : 
    majeur
    trajet
    majestueux
    En revanche, vous ne pouvez modifier que la ligne où figure le commentaire, et les seules fonctions que vous pouvez utiliser sont ces deux fonctions, retourner et multi :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Array.prototype.retourner = function(args, fonction) {
       fonction = fonction || [];
       var i;
       for (var retour = 0, i = [] || fonction; retour < this.length; ++retour)
          i.push(args.apply(this[retour], fonction));
       return i;
    }
     
    function multi(fa1se) { return this.replace(/g/g, fa1se); }
    Et enfin, mauvaise nouvelle : le malfaiteur ayant commis ces lignes est parait-il toujours en liberté. Où va le monde, je vous le demande.

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    euh puis-je te demander ce que signifie ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fonction = fonction || [];
    tu fais un ou entre une fonction et un tableau c'est ça ?

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function correction() {
       var mots = ["mageur", "traget", "magestueux"];
       var resultat = mots.retourner(multi, ["j", "j", "j"]); // <<< ici
       alert("Avant correction : \n" + mots.join("\n") + "\n\nAprès correction : \n" + resultat.join("\n"));
    }
    Heureusement qu'il y a Firebug !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function correction() {
       var mots = ["mageur", "traget", "magestueux"];
       var resultat = mots.retourner(multi, ["j", "j", "j"]); // <<< ici
       alert("Avant correction : \n" + mots.join("\n") + "\n\nAprès correction : \n" + resultat.join("\n"));
    }
    Bravo Daniel tu as été le plus rapide à trouver une solution qui fonctionne

    Mais il reste une solution plus courte que celle-ci... (je la donnerai demain soir si personne n'a trouvé entre temps ^^)
    Citation Envoyé par Auteur Voir le message
    euh puis-je te demander ce que signifie ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fonction = fonction || [];
    tu fais un ou entre une fonction et un tableau c'est ça ?
    Non, c'est une syntaxe que j'ai fini par apprécier pour initialiser un paramètre facultatif avec une valeur par défaut. Ici, les variables sont affreusement mal nommées donc on s'y perd ^^
    Techniquement, l'expression renvoie la première valeur si celle-ci est évaluée "true", sinon la seconde. Dans le cas d'un paramètre passé à la fonction, sur lequel vont être appliquées des méthodes spécifiques à un type d'objet, ce genre de précaution évite de lever une erreur quand le paramètre est undefined et qu'on essaie de lui faire un indexOf, un push, ou autre ^^

  5. #5
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Permettez-moi de présenter cette version un peu torturée mais qui ne passe que par "multi", sauf qu'elle utilise d'autres sparadras...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var resultat = multi.apply(mots.join(" "),["j"]).split(" ");// <<< ici
    Merci pour cette troisième édition en tout cas. Ca me fait plaisir que tu continues.

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function correction() {
       var mots = ["mageur", "traget", "magestueux"];
       //var resultat = mots.retourner(multi, ["j", "j", "j"]); // <<< ici
       var resultat = mots.retourner(multi, ["j"]); // <<< ici
       alert("Avant correction : \n" + mots.join("\n") + "\n\nAprès correction : \n" + resultat.join("\n"));
    }
    C'est ainsi que l'on se rend compte que l'on tombe dans tous les pièges !

    @auteur : il a écrit fonction pas function

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Par défaut
    Ben, oui, pourquoi mettre... ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mots.retourner(multi, ["j", "j", "j"]);
    ... alors que...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mots.retourner(multi, ["j"]);
    ... suffit amplement? ^^



    Edit: Merttt... grilled... xD

  8. #8
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par vermine Voir le message
    Merci pour cette troisième édition en tout cas. Ca me fait plaisir que tu continues.
    Merci vermine (mais.. mais... split ? apply ? non-respect des consignes ? c'est très mal )
    Citation Envoyé par danielhagnoul Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       var resultat = mots.retourner(multi, ["j"]); // <<< ici


    Citation Envoyé par Wapper Voir le message
    Edit: Merttt... grilled... xD
    Pas de beaucoup en tout cas ^^ félicitations à tous !

    Ce soir >>> solution et détails pour les curieux

  9. #9
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Par défaut
    Trop facile...

    window,window

    C'était bien dans l'heure, hein? ^^

  10. #10
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par Wapper Voir le message
    Trop facile...

    window,window

    C'était bien dans l'heure, hein? ^^

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. [Ludique] Mini-jeu niveau très dur
    Par gwyohm dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/01/2011, 08h42
  2. [Ludique] Mini-jeu - niveau 2 : déchiffrage de code (niveau modéré)
    Par RomainVALERI dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 28/07/2010, 23h15
  3. [Ludique] Mini-jeu : déchiffrage de code (niveau facile)
    Par RomainVALERI dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/07/2010, 18h24
  4. [Source] jeu de baston jouable et code source (C++)
    Par shaman321 dans le forum Contribuez
    Réponses: 3
    Dernier message: 16/01/2007, 20h02
  5. mini jeu en construction (débutant)
    Par samy100 dans le forum C
    Réponses: 45
    Dernier message: 23/04/2006, 23h36

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