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 :

[défi n°6] Un peu de poésie que diable!


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut [défi n°6] Un peu de poésie que diable!
    Bonjour à tous

    But du jeu:
    Ecrire le corps de la fonction R() de manière à redonner un sens au texte sur un simple clic.

    Contraintes :
    Le code doit être le plus court possible.
    Il doit être compatible Mozilla / Firefox.

    Précision:
    Indentez et aérez votre script autant que vous le voulez, les espaces vides ne comptent pas pour évaluer la longueur du code

    http://javatwist.imingo.net/defi6.htm

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 47
    Points : 53
    Points
    53
    Par défaut
    Le script se basera uniquement sur ce texte là ou bien la fonction doit marcher aussi si le modifie?

  3. #3
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Oula, je suis tres mauvais dans l'exercice 'deuxlignes'... Je prefere faire du code que j'espere pas trop obscur, mais meme si j'ai perdu d'avance, je poste quand meme ma reponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function R(c){
    	var lg = c.childNodes.length-1;
    	for ( var i = lg;i >= 0;  i-- ) {
    		var par = c.childNodes[i];
    		c.removeChild(par);
    		c.appendChild(par);
    		rslt = "";
    		for ( var k = 0; k < par.innerHTML.length; k++ ) {
    			rslt = par.innerHTML.charAt(k) + rslt;
    		}
    		par.innerHTML=rslt;
    	}
    }
    Et comme disait le baron (pas ernest antoine pour qui j'ai le plus profond mepris, l'autre) : l'important....

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Citation Envoyé par fred777888999
    Oula, je suis tres mauvais dans l'exercice 'deuxlignes'...
    une ligne à faire! 53 caractères...résultat un peu moche!

  5. #5
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Sinon j'ai une solution 'imbatable' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function R(c) {
        c.innerHTML='coucou';
    }

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 47
    Points : 53
    Points
    53
    Par défaut
    en plus, passe pas sous firefox

  7. #7
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    tiens, je croyais avaoir ete suffisament standard, tans pis, j'ai perdu de toutes facons

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    essayer de lire le texte
    de droite vers le gauche
    commencer du bas en montons vers le haut

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Citation Envoyé par Calak
    Le script se basera uniquement sur ce texte là ou bien la fonction doit marcher aussi si le modifie?
    pas sûr d'avoir compris la question


    à fred:

    C'est pas mal mais
    1) pas compatible Moz
    2) on va dire qu'on n'a pas le droit d'utiliser des propriétés freelance comme innerHTML

  10. #10
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    à Matthieu2000 (qui a été le premier à proposer une solution _ en MP _ , qu'on se le dise!)

    Citation Envoyé par Matthieu2000
    c.innerText=c.innerText.split('').reverse().join('');
    Dans le genre "plus court tu peux pas" c'est pas mal;
    mais:
    1) ne fonctionne qu'avec IE
    2) Détruit la belle structure du poème (4 strophes)


    Pendant que j'y suis, le bouton doit fonctionner à l'infini, quel que soit le texte (pour répondre, peut-être, à Calak)

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    on doit pouvoir faire mieux mais je ne suis pas mécontent de moi ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    function R(c){
    fantome=document.createDocumentFragment();
    while(c.lastChild){c.lastChild.firstChild.data=c.lastChild.firstChild.data.split('').reverse().join('');fantome.appendChild(c.lastChild)}
    c.appendChild(fantome);
    }
    </script>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    ne fonctionne qu'avec IE
    je n'ai que ie sous la main

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    sinon y'a ça mais c'est pas perpétuel ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function R(c){
    for(i=0;i<c.getElementsByTagName('div').length;i++){c.firstChild.firstChild.data=c.firstChild.firstChild.data.split('').reverse().join('');c.lastChild.insertBefore(c.firstChild)}
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  14. #14
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par SpaceFrog
    on doit pouvoir faire mieux mais je ne suis pas mécontent de moi ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    function R(c){
    fantome=document.createDocumentFragment();
    while(c.lastChild){c.lastChild.firstChild.data=c.lastChild.firstChild.data.split('').reverse().join('');fantome.appendChild(c.lastChild)}
    c.appendChild(fantome);
    }
    </script>
    Belle optimisation en taille de ce que j'ai pondu (qu'on ne se meprenne pas, je ne pretends absolument pas que notre grenouille developpeuse soit partie meme de facon infime de mon code, je sais qu'il n'en as pas besoin).
    Ca confirme ma phrase, je suis mauvais en deuxlignes .
    SF

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 47
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par SpaceFrog
    on doit pouvoir faire mieux mais je ne suis pas mécontent de moi ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    function R(c){
    fantome=document.createDocumentFragment();
    while(c.lastChild){c.lastChild.firstChild.data=c.lastChild.firstChild.data.split('').reverse().join('');fantome.appendChild(c.lastChild)}
    c.appendChild(fantome);
    }
    </script>
    Error: c.lastChild.firstChild has no properties

    Ne marche pas sous firefox. Vient surement de l'enfant '#text'

  16. #16
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    juste un indice.. comment je recupere tout le contenu du div dans une chaine de caractere..

    j'arrive pas a trouver a l aveuglette quel child il faut que j utilise...

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    heu jt pourquoi un c.firstChild.insertBefore m'insère en deuxième positon ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  18. #18
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Allez, pour le fun et parceque j'avais pas répondu au cahier des charges, une version non optimisée et bien crade qui marche ff ET ie... Je ne revendique pas la paternité de ce truc, ya plein de choses pompées dans les trucs precedents...
    Je prefere quand meme garder ma boucle, meme si celle de SF est plus compacte
    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
     
     
    function R(c){ 
       var lg = c.childNodes.length-1; 
       for ( var i = lg;i >= 0;  i-- ) { 
          var par = c.childNodes[i]; 
          c.removeChild(par); 
          c.appendChild(par); 
          try {
             par.nodeValue=par.nodeValue.split('').reverse().join(''); 
          }
          catch(e) {
             txt = par.firstChild;
             txt.nodeValue=txt.nodeValue.split('').reverse().join(''); 
          }
       } 
    }
    Mais je suis sur que beaucoup de monde va faire infiniment mieux

  19. #19
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    je travaille (encore) à l'aveugle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function R(c){ 
       d = c.childNodes;    
       l=d.length;
       for ( i =0;i< l/2;i++ ) { 
          t = d[i].data; 
          d[i].data = d[l-i-1].data.split('').reverse().join('');
          d[l-i-1].data = t.split('').reverse().join('');      
       }

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 47
    Points : 53
    Points
    53
    Par défaut
    Dites, je bosse là, mais pas moyen de réduire + ...

    J'ai p-e une solution, mais je ne vois pas comment récupérer le html brut du div "cadre" proprement...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. Inno setup, un peu plus loins que la faq
    Par enzo68290 dans le forum Outils
    Réponses: 8
    Dernier message: 07/02/2012, 17h47
  2. JSF et Tableau un peu plus complexe que la norme!
    Par magellan dans le forum JSF
    Réponses: 4
    Dernier message: 27/05/2011, 15h25
  3. Que pensez vous des défis ?
    Par ram-0000 dans le forum Défis C
    Réponses: 12
    Dernier message: 05/10/2009, 08h40
  4. Que faut-il pour commencer? (je suis un peu perdu)
    Par Fredczj dans le forum Débuter
    Réponses: 2
    Dernier message: 01/09/2008, 08h46
  5. Rions un peu [défi] un heureux gagnant déjà
    Par javatwister dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 02/05/2007, 09h35

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