CodeIQの「Restricted Words」を解いたよ

https://codeiq.jp/ace/cielavenir/q431JavaScriptで解きました。ObjectPascalでも解こうと思ったのですが、FreePascalをインストールするのが面倒だったので諦めました。

#!/usr/bin/env node
 
console.log(function() {
  /*
   * H - 72  - 1001000 - IOOIOOO
   * e - 101 - 1100101 - IIOOIOI
   * l - 108 - 1101100 - IIOIIOO
   * l - 108 - 1101100 - IIOIIOO
   * o - 111 - 1101111 - IIOIIII
   *   - 32  -  100000 -  IOOOOO
   * W - 87  - 1010111 - IOIOIII
   * o - 111 - 1101111 - IIOIIII
   * r - 114 - 1110010 - IIIOOIO
   * l - 108 - 1101100 - IIOIIOO
   * d - 100 - 1100100 - IIOOIOO
   */
 
  var I = +true+[],  // "1"
      O = +[]+[],    // "0"
      h = parseInt(I + O + O + I + O + O + O, +I << +I),
      e = parseInt(I + I + O + O + I + O + I, +I << +I),
      l = parseInt(I + I + O + I + I + O + O, +I << +I),
      o = parseInt(I + I + O + I + I + I + I, +I << +I),
      _ = parseInt(    I + O + O + O + O + O, +I << +I),
      w = parseInt(I + O + I + O + I + I + I, +I << +I),
      r = parseInt(I + I + I + O + O + I + O, +I << +I),
      d = parseInt(I + I + O + O + I + O + O, +I << +I);
 
  return String.fromCharCode(h, e, l, l, o, _, w, o, r, l, d);
 
}());

1と0はすぐに作れるんだけど、1を数回足して〜とかって面倒だしかっこ悪いなあと考えたあげくに2進数でごにょごにょする方法にしました。
shebang付けてるけど普通にブラウザでも動くはず。

+I << +I

って何回も書いてるけど、変数に保存すればよかったなあと今コードを見て思いました。まる。