215 ?Code:
1
2
3
4
5
6
7 function R(c){ i=0; a='' var v=document.getElementById('cadre').getElementsByTagName('div') while(i<15){v[i].firstChild.data=v[i].firstChild.data.split(a).reverse().join(a);i++;} while(i>=1){c.appendChild(v[i-1]);i--;} }
Version imprimable
215 ?Code:
1
2
3
4
5
6
7 function R(c){ i=0; a='' var v=document.getElementById('cadre').getElementsByTagName('div') while(i<15){v[i].firstChild.data=v[i].firstChild.data.split(a).reverse().join(a);i++;} while(i>=1){c.appendChild(v[i-1]);i--;} }
copie de sfCitation:
function R(c){
i=0
v=c.getElementsByTagName('div')
while(i<v.length){v[i].firstChild.data=v[i].firstChild.data.split('').reverse().join('');i++;}
while(i>=1){c.appendChild(v[i-1]);i--;}
}
Voila ton code packé au maximum la grenouille ;) Je peux pas faire mieux, je te laisse compter, mais ton algo descends bien en dessous des 200 :haha: :haha: :haha:Citation:
Envoyé par SpaceFrog
Ceci dit, c'est à mon aivs complètement imbitable :haha: :haha: :haha:
Code:
1
2
3
4
5
6
7
8
9
10 function R(c){ v=c.getElementsByTagName('div'); i=v.length; while(i){ p=v[--i].firstChild; p.data=p.data.split('').reverse().join(''); c.appendChild(v[i]); } }
copie de copie de copie ....Citation:
function R(c){
v=c.childNodes;
i=v.length;
while(i){
p=v[--i].firstChild;
p.data=p.data.split('').reverse().join('');
c.appendChild(v[i]);
}
}
heu c'est clair ... que c'est imbitable !!!
while(i) retourne false lorsque i est négatif ???
Ben oui, j'ai juste packe le truc, c'est pas à moi cette horreur :haha: :haha:
while(i) retourne false quand i vaut 0... C'est pour ca que je decremente en debut de boucle, pour bien traiter le premier paragraphe ;)Citation:
Envoyé par SpaceFrog
je gratte encore une caractèreCitation:
function R(c){
v=c.childNodes;
i=v.length;
while(i)
{
p=v[--i].lastChild;
p.data=p.data.split('').reverse().join('');
c.appendChild(v[i]);
}
}
Laisse tomber, les espaces d'indentation sont pas pris en compte dans le calcul de JT ;) J'espere d'ailleur que les ; en fin de ligne facultatifs non plus ;)
j'ai remplacéCitation:
Envoyé par fred777888999
parCitation:
firstChild
! :evil:Citation:
lastChild
non first last ... bien vu !
:haha: :haha: :haha: Oki, je l'avais meme pas vu celle la :haha: :haha: :haha:Citation:
Envoyé par Matthieu2000
Je suis bien d'accord qu'on doit faire le + petit ( d'ailleur là, je pense qu'on arrive à une taille liliput :P ) mais il ne faut pas oublier les règles..Citation:
Envoyé par Matthieu2000
Il est où le var devant les var? :D
Rien n'interdit d'utiliser des variables globales... Ne soit pas jaloux de l'oeuvre de création quasi parfaite issue de trois cerveaux quasi sains.
:haha: :haha: :haha:
ouias sans moi le "quasi" aurait été inutile :lol:
euh :oops: je savais pas qu'il faut un double décimètre pour faire du js.Citation:
Envoyé par Calak
Pour s'attaquer aux defits de JT, je suis pas certain qu'il faille etre tout a fait normal ;)
Ceci dit, je suis impatient de voir sa reaction finale ;)
une erruption cutanée ?
XPLDR mathieu
Sinon, nan je suis pas jaloux, je trouve que on arrive à un résultat allez.. comment dire... génial :P
Je suis sur quil va nous piquer un infaf le JT xD
Ceci dit matthieu, tu est allé un tout petit peu trop loin...
ne passes pas sous ff, il faut revenir àCode:
1
2 v=c.childNodes
Code:
1
2 v=c.getElementsByTagName('div')
javscript est menstrué ???Citation:
Envoyé par Matthieu2000
ben quoi Javatwister réclamait de la poésie non ?
ok je :arrow:
Putain, ca raccourci pas le code de l'utiliser alors je refais pas le bout de prog, mais j'avoue que je connaissai pas cette balise :
Comme quoi on apprends tous les jours et a tout age, je me demande quand meme bien a quoi ca peut vraiment servir en pratique et l'interet d'avoir inclus cette daube dans les standards...Code:
1
2<bdo dir="rtl">lav ud ruemrod eL</bdo>
j'avais cherché du coté de rtl ... je l'attribuais directement à la balise html mais bdo ???
Revenons à la dernière solution acceptable:
Là on nage en plein rêve!Citation:
Envoyé par Matthieu2000
et au maximum, 256 caractères :lol:
a mon avis JT à mieux en reserve ... il nous cache quelquechose ...
Tu exagere, tu change la regle du jeu en cours de partie :haha: :haha:Citation:
Envoyé par javatwister
Allez, je reprend ma boucle pour inverser la chaine, on est encore sous les 200 et plus de limites à la longueur de la chaine :D
La je crois que tu peux nous poster ta soluce parcequ'on fera sans doutes pas mieux, enfin, pour moi, c'est grillé :haha: :haha:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 function R(c){ v=c.getElementsByTagName('div') i=v.length while(i){ p=v[--i].firstChild q=p.data r=""; for(j=0;j<q.length;j++) {r=q.charAt(j)+r} p.data=r; c.appendChild(v[i]) } }
Aaaaargh, posté trop vite, on peut encore gagner qq chars (mais franchement, je parle pas de la lisibilité à l'arrivée, remarque, arrivé a ce niveau, c'est tres accessoire) dans la boucle for...
Mais franchement, si qq me demande de debugger un truc pareil, la reponse sera 'va te faire....' :haha: :haha:Code:
1
2
3
4
5
6
7
8
9
10
11 function R(c){ v=c.getElementsByTagName('div') i=v.length while(i--){ r='' for(j=0;j<(q=(p=v[i].firstChild).data).length;r=q.charAt(j++)+r); p.data=r c.appendChild(v[i]) } }
Noter le ; tout a fait indispensable apres le for, à ne pas enlever de la longueur du code donc :haha:
Tant qu'a aller dans l'encapsulation...
Au passage, j'ai revula boucle for, plus courte...
Mais:Code:
1
2
3
4
5
6
7 function R(c){ i=(v=c.getElementsByTagName('div')).length while(i--){ for(j=(q=(p=v[i].firstChild).data).length,r='';j--;r+=q.charAt(j));p.data=r c.appendChild(v[i]) } }
1// Tes encapsulaton te font perdre un char par encapsulation ( si dans le décompte on oublie des char blancs ( " ", "\n", "\r", "\t', etc )
Donc vu qu'il a dit qu'il comptait pas les chars blancs, je change ça.
2// L'optimisation forstChild=>lastChil est tjs valable, ce qui nous donne donc ( et en plus libile ):
Au suivant :pCode:
1
2
3
4
5
6
7
8
9
10
11 function R(c){ v=c.getElementsByTagName('div') i=v.length while(i--){ p=v[i].lastChild q=p.data for(j=q.length,r='';j--;r+=q.charAt(j)); p.data=r c.appendChild(v[i]) } }
Quoique.. je suis pas sur que le for soit une bonne idée.
Si quelqu'un a un script pour compter les chars sous la main, comparez avec
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 function R(c){ v=c.getElementsByTagName('div') i=v.length while(i--){ p=v[i].lastChild q=p.data j=q.length r='' while(j--)r+=q.charAt(j) p.data=r c.appendChild(v[i]) } }
Oui, c'est vrai... Avec le ; facultatif, on s'en sort mieux sans encapsuler, et la boucle for fait gagner 2 chars en partant de la fin, mais du coup, de la fin, les 2; gagnes par le while font que ca a la meme longueur, mais on gagne le ; apres la boucle for, donc -1 char... [edit] Je viens de me relire, c'est presque aussi incompréhensible que le code[/edit]
Quel bordel ceci dit... Tout ce qu'il ne faut pas faire en prog ;)
attention Fred! je donnais juste la longueur du code de Matthieu! c'était pas une nouvelle contrainte :lol:
hum; vous avez testé vos derniers ... euh... aménagements, là? http://javatwist.imingo.net/sm12.gif
Moi yop... ceux de Calak, saispo, mais ils me semblent ok... Pour le code commun, il fait moins de 156 cars tu voulais dire ;) Ceci dit, j'aimerai bien ta soluce avant mon WE qui va commender (exceptionnelement) a 17h ;)
bah, vous avez explosé les pronostics les gars; tu peux partir tranquille :lol:
Allez, au passage pour compter les chars, un petit script vite fait:
http://calak.free.fr/tool/dacount.php
les 3 codes de mon dernier message font respectivement 166, 162 et 160 char et ils marchent tous ( je poste pas sans tester hein ;) ) ;)
Par contre, vais essayer de mettre le split()... pour voir si ca change qqc :p
[€dit]
Voila, avec mon compteur et ce code, j'arrive à 144 char ^_^
[Re€dit]Code:
1
2
3
4
5
6
7
8
9 function R(c){ v=c.getElementsByTagName('div') i=v.length while(i--){ p=v[i].lastChild p.data=p.data.split('').reverse().join('') c.appendChild(v[i]) } }
Un point virgule à la poubelle, qui nous fait passer à 144 :P
( attention, dans les 144 je ne compte pas les retours à la ligne obligatoires, donc on doit taper dans les 150 )
Un homage à un travail d'equipe qui fait plaisir à entendreCitation:
Envoyé par javatwister
:yaisse:
:lahola:
143 avec le même :haha:
je vous rassure, c'est pas le with qui change les choses (25 / 25 :haha: )Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function R(c){ v=c.getElementsByTagName('*') i=v.length while(i--){ with(v[i].lastChild) data=data.split('').reverse().join('') c.appendChild(v[i]) } }
pas con le ('*') ^^;
tiens, une très différente qui fait aussi 143
je sais pas pourquoi, mais ça donne l'impression d'être facilement compressible http://javatwist.imingo.net/sm19.gifCode:
1
2
3
4
5
6
7
8
9
10 function R(c){ v=c.childNodes i=v.length while(i--){ try{with(v[i].lastChild) data=data.split('').reverse().join('')} catch(e){} c.appendChild(v[i]) } }
marchera pas sous FF ( pas testé là )
car avec FF, dans childNode il y a 2 fois plus de 'cases' que de balises.
t'auras un truc tupe '#text', 'DIV', '#text', etc...
C'est ça qui m'avais posé le plus de probs lors de mon essais de code.
D'où le passage par .GetElementsByTagName