新刊ピックアップ
コードパズルに挑戦して,論理的思考を養おう!
本書は,
「コードゴルフ」
これらの問題をJavaScriptを使って解いていくことで,
エンジニアのスキル評価サイト
ここでは,
コードゴルフ問題
アスキーアートで円を描こう
以下は,
//= 元のコード
function originalCode() {
// 変数の初期化
var res = "";
var w = 80;
var h = 40;
var sz = 30;
// 処理
for (var y = 0; y < h; y ++) {
for (var x = 0; x < w; x ++) {
var dstnc = Math.sqrt(
Math.pow(w / 2 - x, 2)
+ Math.pow((h / 2 - y) * 2, 2)
);
if (dstnc < sz) {
res += "*";
} else {
res += "-";
}
}
res += "\n"
}
// 結果を戻して終了
return res;
}
- ヒント
JavaScriptの言語仕様に沿ったテクニックは,
- コメントを削除する
- タブ文字を削除する
- 不要なスペースを削除する
- 変数名は1文字にする
- [] を使って配列生成する
- 条件演算子を使用して処理を短縮する
などが連想できると思います。これらを駆使し,
よ~く考えてみてください。 (答えはひとつではありません。解答例は本書1-1を参照ください)
いかがですか? コード圧縮のイメージは湧いてきましたか? ― ――とあるように, 美しいコードやリーダブルコードが注目されている昨今, ※なお,
記事中で紹介した書籍
-
プログラマのためのコードパズル ~JavaScriptで挑むコードゴルフとアルゴリズム
本書は,プログラマによる,プログラマのための『コードの短さを競う「コードゴルフ」や,「アルゴリズム」の思考トレーニング集』。 設問を解いていくことで,プログ...