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] Défis code en un tweet


Sujet :

JavaScript

  1. #161
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je dirais surtout que même IE11 l'a supprimée cette abomination !

  2. #162
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Je l'ignore, ça passe toujours sur Chrome en tout cas. Mais c'est vrai que toutes les méthodes DOM font des kilomètres, document.getElementsByTagName, document.querySelectorAll...

    Bon pour que cet énoncé soit faisable, je propose de passer document.querySelectorAll en paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (function negatifPage($){
     
    })(function(s){ return document.querySelectorAll(s); })
    Comme ça Bovino pourra dormir sur ses deux oreilles, et je peux écrire mon code sous la barre des 140 caractères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (function negatifPage($){
     
    for(i=0;s=getComputedStyle(e=$('*')[i++]);)for(p in s)if(/(^c|dC)olor$/.test(p))e.style[p]=s[p].replace(/\d+/g,function(n){return 255-n})
     
    })(function(s){ return document.querySelectorAll(s); })
    137 car

  3. #163
    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
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    J'ai donné +1, non pas pour le code, mais pour l'adaptabilité de l'énoncé du problème au code. Si on reprend depuis le début, on voit qu'il y a eu pas mal d'accommodements, mais l'essentiel y est.

  4. #164
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Si tu penses que c'est facile de toujours trouver de bons énoncés du premier coup

    C'est pour ça que je vous ai incité à m'envoyer vos propositions (et merci à Kaamo et Barsy au passage). Le précédent était trop court, celui-ci trop long... le prochain sera le bon ! En attendant je suis certain qu'il reste de nombreuses améliorations sur celui-ci.

  5. #165
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Comment ça trop long ?

    65 caractères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (function(){
    document.styleSheets[0].addRule('html','-webkit-filter:invert()')
    })()
    *Bovino style*

    Un ptit bonus pour comptabilité Opéra et IE9+ (en 102 caractères), en utilisant invert de outline-color (non implémenté sur les autres navigateurs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (function(){
    document.styleSheets[0].addRule("body:before","content:'';position:fixed;outline:2999px solid invert")
    })()
    Pour Firefox, il ne semble pas connaitre addRule mais -moz-filter:invert() doit pouvoir fonctionner.

    ps : pour inverser dans l'autre sens il faut ajouter un 0% : -webkit-filter:invert(0%).

    EDIT : j'avais mal lu l'énoncé
    Interdiction d'utiliser cette propriété pour les autres éléments que les images

  6. #166
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Oui j'avais anticipé la plaisanterie

    Là j'essaie de me débarasser du if() et d'utiliser autre chose qu'un String.replace, mais je ne trouve rien de plus court...

  7. #167
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Moi non plus ... pas faute d'avoir cherché pourtant.

  8. #168
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 098
    Points : 44 879
    Points
    44 879
    Par défaut
    Bon pour que cet énoncé soit faisable, je propose de passer document.querySelectorAll en paramètre :
    même si tu ne passes pas en paramètre la méthode tu obtiens un 161 caractères ce qui est tout à fait honorable compte tenu du sujet

  9. #169
    Invité
    Invité(e)
    Par défaut
    pour ma part... j'apprends beaucoup !

    si je comprends bien :
    un code "synthétique", c'est de l'intelligence "artificielle", non ?

    Big UP !

  10. #170
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Je suis pas sûr de te suivre jreaux62

    Au passage, une présentation en anglais sur la minification en Javascript très sympa que je viens de trouver : https://docs.google.com/presentation...nt#slide=id.i0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "vous0connaissiez0ça0?".split(0)

  11. #171
    Invité
    Invité(e)
    Par défaut
    Houla ! Ce n'est pas moi qu'il faut suivre.... au contraire !
    C'est moi qui essaie de suivre...

    Je faisais juste le lien entre "synthétique" et... "artificielle"

    Je comprends surtout que vous vivez sur une "autre planète" !

  12. #172
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 098
    Points : 44 879
    Points
    44 879
    Par défaut
    Citation Envoyé par SylvainPV
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "vous0connaissiez0ça0?".split(0)
    celle là je doit admettre que je ne la connaissait pas, gain 2 quand même.

    Je reprendrais le lien à tête bien plus reposée, il y a du gain dans l'air même si beaucoup a déjà été abordé dans les exercices que tu vous avez proposés.

  13. #173
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    J'avais survolé le doc il y a quelques temps (quand j'avais testé le codage en 6 caractères). D'ailleurs, c'est (encore) par le créateur de JSFuck (pour ceux qui ont suivi le codage du simulateur de Sylvain en 6 caractères).
    En fait, toutes ces réalisations sont à lire/voir à ce Martin Kleppe (surtout son doc sur le binaire et les "bitwise operators")
    edit : et pour NoSmoking, il y a même du Gogle Map API

  14. #174
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 098
    Points : 44 879
    Points
    44 879
    Par défaut
    Citation Envoyé par Kaamo
    edit : et pour NoSmoking, il y a même du Gogle Map API
    c'est impressionnant comme il y a des gens qui ont du temps pour ce genre de futilités

  15. #175
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bon pour le dixième énoncé je propose d'innover un peu.

    Numéro 10: thème libre

    A chacun de proposer un code de moins de 140 caractères remplissant la fonction de son choix. Les mêmes règles que les énoncés précédents s'appliquent, avec quelques précisions en plus :
    - vous pouvez déclarer et passer ce que vous voulez comme arguments à votre fonction du moment qu'il s'agit de variables dont dépend le résultat de la fonction (un nombre, une phrase, un élément HTML...)
    - vous pouvez accompagner le code de plusieurs cas d'utilisations ou d'une page de test
    - ce n'est pas un concours, plus un étalage des talents et idées de chacun. Essayez quand même de récolter un max de pouces verts et d'en mettre aux créations des autres
    - vos créations doivent miser sur l'originalité, la technicité et la qualité de présentation. Les explications et commentaires sur votre code sont les bienvenus

    Si vous cherchez de l'inspiration, je vous suggère de voir le concours js1k. En 140 caractères on ne fait pas grand chose, mais on n'a pas besoin de grand chose pour en mettre plein la vue

  16. #176
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Pas encore eu le temps de me pencher sur la chose mais j'ai quelques petites idées ... notamment le tic tac toe (ou sa version quantum mais ça serait peut-être un peu trop), du puissance 4, un pendu, etc

    Ou sinon j'ai pensé aussi à un décodeur image > ascii art. J'avais vu que c'était possible avec canvas.

    Et vous, vous avez des idées ?

  17. #177
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    J'étais parti sur un traceur de rosaces. Pas le plus compliqué mais dès qu'on s'attaque au canvas les caractères défilent vite...

    http://jsfiddle.net/J7kUq/1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (function(C,f){
        c=C.getContext('2d');
        c.transform(2,t=0,0,1,148,R=74);
        F=f;    
        X=Math.cos;
        setInterval("c.fillRect(R*(r=X(F*t))*X(t),R*r*Math.sin(t+=.01),1,1)",5);
    })(document.querySelector("canvas"), 8/3);
    Je n'arrive pas à descendre sous les 165 caractères, donc je pense que je vais partir sur autre chose

  18. #178
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Dans le projet js1k, ils donnent ceci en entrée :

    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
    <!doctype html> 
    <html> 
      <canvas></canvas> 
     
      <script> 
     
        var b = document.body;
        var c = document.getElementsByTagName('canvas')[0];
        var a = c.getContext('2d');
     
        // start of submission //
        *** YOUR SCRIPT ***
        // end of submission //
     
      </script> 
    </html>
    Peut-être pourrais - tu gagner 10 caractères ainsi
    En tout cas, chapeau l'artiste, c'est beau !

  19. #179
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    @SylvainPV pour ta rosace.

    je n'ai pas compris l'intérêt de cette ligne de code

    et plus loin tu as écrit Math.sin. Tu peux gagner encore des caractères en remplaçant Math.sin par X car sin(Pi/2-A)=cos(A)

  20. #180
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    je n'ai pas compris l'intérêt de cette ligne de code
    Je me suis posé la même question quelques posts en arrière.

    Quand tu passes une String à setInterval, elle est interprétée avec eval dans le scope global. Or, dans le scope global, f est inconnue car elle est propre au scope de la fonction.
    En faisant F=f; (c'est du "global leak" mais bon, çça dépanne parfois ) la variable sera bien dans le scope global.

Discussions similaires

  1. Défi : Toutes les semaines un peu de code pour aller plus loin avec Windows 7
    Par Jérôme Lambert dans le forum Développement Windows
    Réponses: 41
    Dernier message: 05/01/2012, 12h00
  2. [Ludique] Mini-jeu : épisode 3 (déchiffrage de code, niveau : facile)
    Par RomainVALERI dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 03/11/2010, 00h45
  3. [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
  4. [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

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