新刊ピックアップ
コードパズルに挑戦して,論理的思考を養おう!
本書は,
「コードゴルフ」
これらの問題を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で挑むコードゴルフとアルゴリズム
本書は,プログラマによる,プログラマのための『コードの短さを競う「コードゴルフ」や,「アルゴリズム」の思考トレーニング集』。 設問を解いていくことで,プログ...
関連記事
- 『Vue.js入門 基礎から実践アプリケーション開発まで』刊行記念特別インタビュー~Vue.jsの魅力とこれから~
- 2018年8月第4週号 1位は,新しいウェブサイトを立ち上げるときにやるべきこと,気になるネタは,Evernote、10周年で新ロゴ発表(ゾウは健在)
- グレープシティ,JavaScript UIライブラリの新バージョン「Wijmo 2018J v1」をリリース
- 2018年3月第4週号 1位は,ユーザーフレンドリーなフォームを作るためのヒント,気になるネタは,カシオの「ゲーム電卓」復活 シューティング搭載「SL-880」38年ぶりに
- ロクナナワークショップ「野中文雄のVue.js入門講座」を開講