JavaScript (Rhino: 108, Node: 114, Conskle Dev Webkit: 119, jQuery Plugin: 132)
Носоріг - найкоротший (на 108 символів), оскільки (а) його print
функція має коротке ім'я та (б) дозволить призначити вбудовані функції в коротше ім'я змінної. Так:
h=10,p=print,m='0',a=Array(h-1),s=a.join(' ');p(s+'*\n'+s+m);while(h-->2){m+='00';a.pop();p(a.join(' ')+m);}
Node.js приходить ближче до другого (на 114 символів), оскільки його функція друку console.log
має більш довге ім'я, але ми також дозволимо призначити це для короткої змінної:
h=10,p=console.log,m='0',a=Array(h-1),s=a.join(' ');p(s+'*\n'+s+m);while(h-->2){m+='00';a.pop();p(a.join(' ')+m);}
Однак консоль Webkit Dev Console (і, мабуть, і Firebug теж) вважає p=console.log
трохи надмірна (коли ви намагаєтесь зателефонувати p()
, вона скаржиться на вас). Отже, ми повинні подовжити речі на 119 символів:
h=10,m='0',a=Array(h-1),s=a.join(' ');with(console){log(s+'*\n'+s+m);while(h-->2){m+='00';a.pop();log(a.join(' ')+m);}}
(Цікаво, що with
нас тільки рятує персонаж).
Нарешті ... плагін jQuery (все ще в твіттері зі 132 символами!):
$.fn.xms=function(h){var m='0',w=2,l=['*',m];while(w++<h)l.push(m+='00');$(this).css({textAlign:'center'}).html(l.join('\n<br/>'));}
І ви можете викликати його в нижній частині нижньої частини цієї сторінки: $('#footer').xms(3)
Звичайно, це не повинен бути плагіном ... оскільки нам, мабуть, доведеться використовувати консоль JavaScript, щоб додати його на сторінку і викликати її, ми могли просто зробити фрагмент jQuery :
h=10,m='0',w=2,l=['*',m];while(w++<h)l.push(m+='00');$('#footer').css({textAlign:'center'}).html(l.join('\n<br/>'));
яка важить більш конкурентоспроможних 116 символів - насправді це вибиває іншу реалізацію консолі розробника. Але, знову ж таки, використання jQuery та / або механізму компонування браузера може вважатися обманом. :)