新刊ピックアップ
コードパズルに挑戦して,論理的思考を養おう!
本書は,
「コードゴルフ」
これらの問題を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で挑むコードゴルフとアルゴリズム
本書は,プログラマによる,プログラマのための『コードの短さを競う「コードゴルフ」や,「アルゴリズム」の思考トレーニング集』。 設問を解いていくことで,プログ...
関連記事
- 2018年9月第2週号 1位は,ウェブデザインにアイコンをどう活用するか,気になるネタは,Microsoft,手書きのUIスケッチをHTMLに変換する「Sketch2Code」を発表
- 2018年3月第5週号 1位は,ランディングページを良くするための10個のヒント,気になるネタは,Google,虚偽ニュース対策とメディア企業支援の「News Initiative」に3億ドル投入
- グレープシティ,JavaScript UIライブラリの新バージョン「Wijmo 2018J v1」をリリース
- ロクナナワークショップ「野中文雄のVue.js入門講座」を開講
- 『プログラマのためのコードパズル ~JavaScriptで挑むコードゴルフとアルゴリズム』Kindle版発売