ソフトウェア開発を行う、クロノス・クラウン合同会社(本社・横浜市)の代表社員 柳井政和は、2015年9月15日 に、プログラマー向けコードパズル サイト「コードダンジョン」を正式公開しました。
□コードダンジョン
http://puzzleandgame.com/ja/code_dungeon/
■ 内容
「コードダンジョン」に掲載されている問題は、コードゴルフの一種です。
コードゴルフは、ゴルフが短い打数を競うように、短いコードで目的の処理を書く遊びです。ショートコーディングとも呼ばれます。
「コードダンジョン」では、そのコードゴルフに加え、ダンジョンのレベルが上がると禁止文字が増え、普通にプログラムが書けなくなっていきます。
たとえば「+ - * / %」といった演算子、「if switch for while」といった予約語、「Math eval」といったオブジェクトや組み込み関数が禁止されます。
そういった条件の中でアルゴリズムを工夫し、目的の処理を実現していきます。
現在、サイトでは19の問題が公開されており、JavaScriptでチャレンジできます。
■ 問題と解答例
● 「FizzBuzzのダンジョン」問題
1から順に整数を数えていき、3で割り切れる時は「Fizz」、5で割り切れる時は「Buzz」、3と5の両方で割り切れる時は「FizzBuzz」と出力する。
変数iが整数の時、「[i, "fizz", "buzz", "fizzbuzz"][????]」の「????」部分を埋めて、上記の出力が得られるコードを作成せよ。
◆ レベル1
「文字数」100文字以内
「禁止文字列」
なし
解答例→ (i%3?0:1)+(i%5?0:2)
◆ レベル2
「文字数」30文字以内
「禁止文字列」
? : & | , $ eval function Function if switch for while return
解答例→ !(i%3)+!(i%5)*2
◆ レベル3
「文字数」40文字以内
「禁止文字列」
? : & | , $ eval function Function if switch for while return
! ^ ~ < > = Math
解答例→ "322"[i%3]-"02222"[i%5]
◆ レベル4
「文字数」70文字以内
「禁止文字列」
? : & | , $ eval function Function if switch for while return
! ^ ~ < > = Math
%
解答例→ "3001021001201000"[i-parseInt(i/15)*15]
■ 「コードダンジョン」まとめ
「コードダンジョン」は、禁止文字付きコードゴルフです。普段は書かないようなアルゴリズム作成に挑み、プログラマーの脳を刺激するコードパズルです。
クロノス・クラウンでは、今後も、楽しさと実用を兼ね備えたコンテンツや技術を提供していきます。
□コードダンジョン
http://puzzleandgame.com/ja/code_dungeon/
□コードダンジョン
http://puzzleandgame.com/ja/code_dungeon/
■ 内容
「コードダンジョン」に掲載されている問題は、コードゴルフの一種です。
コードゴルフは、ゴルフが短い打数を競うように、短いコードで目的の処理を書く遊びです。ショートコーディングとも呼ばれます。
「コードダンジョン」では、そのコードゴルフに加え、ダンジョンのレベルが上がると禁止文字が増え、普通にプログラムが書けなくなっていきます。
たとえば「+ - * / %」といった演算子、「if switch for while」といった予約語、「Math eval」といったオブジェクトや組み込み関数が禁止されます。
そういった条件の中でアルゴリズムを工夫し、目的の処理を実現していきます。
現在、サイトでは19の問題が公開されており、JavaScriptでチャレンジできます。
■ 問題と解答例
● 「FizzBuzzのダンジョン」問題
1から順に整数を数えていき、3で割り切れる時は「Fizz」、5で割り切れる時は「Buzz」、3と5の両方で割り切れる時は「FizzBuzz」と出力する。
変数iが整数の時、「[i, "fizz", "buzz", "fizzbuzz"][????]」の「????」部分を埋めて、上記の出力が得られるコードを作成せよ。
◆ レベル1
「文字数」100文字以内
「禁止文字列」
なし
解答例→ (i%3?0:1)+(i%5?0:2)
◆ レベル2
「文字数」30文字以内
「禁止文字列」
? : & | , $ eval function Function if switch for while return
解答例→ !(i%3)+!(i%5)*2
◆ レベル3
「文字数」40文字以内
「禁止文字列」
? : & | , $ eval function Function if switch for while return
! ^ ~ < > = Math
解答例→ "322"[i%3]-"02222"[i%5]
◆ レベル4
「文字数」70文字以内
「禁止文字列」
? : & | , $ eval function Function if switch for while return
! ^ ~ < > = Math
%
解答例→ "3001021001201000"[i-parseInt(i/15)*15]
■ 「コードダンジョン」まとめ
「コードダンジョン」は、禁止文字付きコードゴルフです。普段は書かないようなアルゴリズム作成に挑み、プログラマーの脳を刺激するコードパズルです。
クロノス・クラウンでは、今後も、楽しさと実用を兼ね備えたコンテンツや技術を提供していきます。
□コードダンジョン
http://puzzleandgame.com/ja/code_dungeon/