js-taiso-005-1200x630-x-general-v1-2
js-taiso-003-hubspot-overtime
問題をダウンロード
回答を提出

【延長戦】以下の114文字の回答を更に短くしてください!

export default(s,r=Math.random,z=n=>n>0?String.fromCharCode(768+r()*112)+z(n-1):'')=>s.replace(/./g,c=>c+z(r()*8))

(8/6火 23:59:59 提出締切)

延長戦の詳細は以下のブログ記事をご覧ください

https://techblog.kayac.com/js-taiso-003-extension-match-announcement

問題をダウンロード
回答を提出する

『JS体操』は面白法人カヤックが主催するJavaScriptのコードゴルフ。JavaScriptの問題をゲーム感覚で解きながら言語仕様の理解やプログラミング能力を深める、まさに頭の体操です。
出題される問題は言語仕様や数学、アルゴリズムの知識を問うものまで様々。
上級者の方からJavaScriptを使い始めたという方まで、たくさんの挑戦お待ちしています!

【問題】画像からアスキーアートを生成しよう


今回は指定された画像をアスキーアートに変換する問題です。問題ファイルに同梱されている画像ファイルを、対応するテキストファイルに一致するように変換してください。

変換する画像ファイルとテキストファイルの対応は以下の通りです。

js-taiso-005-1200x630-sample-01
js-taiso-005-1200x630-sample-02

元のコードは<canvas>を用いて画像をアスキーアートに変換していますが、その他の方法も可能かもしれません。さまざまな変換方法を試してみてくだい。

目標文字数


  • 500文字以下:GOOD
  • 350文字以下:GREAT
  • 250文字以下:EXCELLENT
  • 200文字以下:AMAZING
  • 180文字以下:UNBELIEVABLE

※JS体操ではJavaScriptの文字列のlengthプロパティの値を文字数とみなします。つまり、UTF-16のコードユニットの数を文字数とします。コードポイントや書記素クラスタの数、またJSファイルのバイト数ではないことに注意してください。

問題の解説はカヤック技術部ブログで公開します。考えられる様々なアプローチや優れた/面白いコードの紹介、どのように実際の仕事に応用できるのかなどを解説します。

特典(学生向け)

優秀なコード・面白いコードを提出された学生には、カヤックの新卒採用・インターンでの書類選考免除特典をお送りします。希望される方はフォームの「特典を希望する」にチェックを入れてください。後日、対象者にのみご連絡差し上げます。

締切


7月31日(水) 23:59:59

参加方法


1️⃣ 問題ファイルをダウンロードし、エディタで開く

問題ファイルをダウンロード

2️⃣ ローカルHTTPサーバを介し、ブラウザでindex.htmlを開く

index.htmlを直接ではなくローカルHTTPサーバを介して開いてください。JSモジュールやその他ファイルの読み込みのため、XMLHttpRequestで通信可能な環境で実行する必要があるためです。VS Codeをご利用の方はLive Serverプラグインが便利です。

3️⃣ ブラウザの開発者コンソールを開く

js-taiso-005-screenshot-01
文字数やエラーは開発者コンソールに表示されます。

4️⃣ aa.jsをエディタで編集する

js-taiso-005-hubspot-screenshot-vs-code
エラーが出ないように注意しながら文字数をなるべく短くしてください。

5️⃣ エラーが出たら修正する

5️⃣SNSで結果をシェア

8Xでシェア-1

テストに合格すると「Xでシェアする」ボタンが表示されます。画面(Zalgo Textと文字数の)スクリーンショットを添付の上、ぜひ #JS体操 のハッシュタグを付けてシェアしてください。

js-taiso-005-screenshot-02
js-taiso-004-hubspot-screenshot-666-failed
生成されたアスキーアートと正解のアスキーアートに差分がある場合、差分が赤く表示されます。

6️⃣ 回答を提出する

js-taiso-005-screenshot-03
js-taiso-004-hubspot-screenshot-666-failed
aa.js を短くできてエラーも出ていなければいよいよ提出!「回答を提出する」ボタンを押して提出フォームを開き、aa.js の内容をコピペして送信してください。

回答提出フォーム


より短い/スマートなコードが書けた時など何度でも提出可能です。
優れた/面白いコードは、解説ブログにて紹介させていただきます。

面白法人カヤックとは


面白法人カヤックは、「つくる人を増やす」の経営理念のもと、面白いサービスを次々にリリースするクリエイター集団です。広告やPRの受託開発を行う『面白プロデュース事業』、ゲームの開発・運用を行う『ゲーム・エンタメ事業』、持続可能なまちづくりをジブンゴト化する『ちいき資本主義事業』などの主要事業の他、新規事業を企画・運用する環境も整っています。サイコロ給や採用キャンペーンなど、面白い組織制度にも力をいれています。

download-1

面白法人カヤック公式ウェブサイト

download

新卒・中途採用も随時実施中です!

©2024 KAYAC Inc.