新刊ピックアップ
コードパズルに挑戦して,論理的思考を養おう!
本書は,
「コードゴルフ」
これらの問題を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年9月第2週号 1位は,ウェブデザインにアイコンをどう活用するか,気になるネタは,Microsoft,手書きのUIスケッチをHTMLに変換する「Sketch2Code」を発表
- 2018年8月第4週号 1位は,新しいウェブサイトを立ち上げるときにやるべきこと,気になるネタは,Evernote、10周年で新ロゴ発表(ゾウは健在)
- 2018年3月第5週号 1位は,ランディングページを良くするための10個のヒント,気になるネタは,Google,虚偽ニュース対策とメディア企業支援の「News Initiative」に3億ドル投入
- 2018年3月第4週号 1位は,ユーザーフレンドリーなフォームを作るためのヒント,気になるネタは,カシオの「ゲーム電卓」復活 シューティング搭載「SL-880」38年ぶりに