投稿先: https://noratetsu.blogspot.com/2023/02/NTA-DIY-1-3.html
NTA-DIY:1ヶ月目③~おみくじいろいろ~
プログラミング学習の定番におみくじプログラムの作成があります。乱数と条件分岐を使うので、おみくじを作れるようになればすなわち他にもできることがぐっと増えるというわけです。
このシリーズは私の体験記として書いているので、良い手本を見せようというのでもなければ懇切丁寧な解説をしたためるのでもありません。しかし、実際何をやったかを書いておくことには多少の意味があると思うので、コードをちょこちょこ書いておくことにします。
おみくじとして成立するためには、「乱数を生成する」「生成した乱数に応じて結果を表示する」の二点が必要です。乱数の生成にはバリエーションはそんなにありませんが、乱数に対応する結果の呼び出し方にはいくつか方法があります。私が勉強に使った記事ではひとつの方法だけ例として書いてありましたが、これでもできるんじゃないかと自分で他の方法を考えて試しました。
捻りも何もないコードですが、自力でチャレンジしたい方もいらっしゃるかもしれないので折り畳んでおきます。
①基本のif分岐
const r = Math.random() * 5; // 0以上5未満の乱数を生成する
if (r < 1) {
console.log('大吉です');
} else if (r < 2) {
console.log('中吉です');
} else if (r < 4) {
console.log('吉です'); // 吉の出る確率を高く設定
} else {
console.log('凶です');
}
②わかりやすいswitch文
const r = Math.floor(Math.random() * 5); // 0以上5未満の整数の乱数を生成する
let result = '';
switch (r) {
case 0:
result = '大吉';
break;
case 1:
result = '中吉';
break;
case 2:
case 3:
result = '吉'; // 吉の出る確率を高く設定
break;
default:
result = '凶';
}
console.log('運勢は' + result + 'です');
③配列ですっきり
const r = Math.floor(Math.random() * 5); // 0以上5未満の整数の乱数を生成する
const fortune = ['大吉', '中吉', '吉', '吉', '凶']; // 配列を用意する(吉の出る確率を高く設定)
console.log('運勢は' + fortune[r] + 'です');
具体的にどう書いたのかというのはおまけなので、細かく見なくていいです。検索すると他のやり方も色々出てくるだろうと思います。
何かひとつ新しいことを覚えた時、それを使って何ができるのか可能性を考えるのが楽しく感じました。たとえその先に出てくることでさらっとやれてしまうことなのだとしても、今知っていることだけでどうにかできるかもと考えていくわけです。
ツールづくりに入ってからも、便利な組み込みメソッドが既にあることに気付かず、同じ挙動のものを自分で関数にしていたというのがいくつかあります。一言で言うとアホですが、本人は「やはりこれは一般的に多用される処理なのだ!」と思ってむしろテンションが上がりました。学習効率としては非効率なのかもしれませんが、気持ちの面では独学でマイペースにやっているがゆえのボーナスと感じました。それに、気分の良さがブーストになるのだとすれば、非効率イコール遠回りとも限りません。
コンピューターは寛容です。エラーにならなければなんでもやってくれます。思いつく限り試せるものは何でも試すというのが、主体的な楽しさを維持できる姿勢だと思います。
ところで、1ヶ月目は覚えたことや気付きが多いので、記事の本数としては12ヶ月で均等ではなく1ヶ月目に偏って多くなると思います。もうしばらく初期の話にお付き合いください。
Backlinks
関連度が高いかもしれない記事
- NTA-DIY:1ヶ月目⑤~小さいチャレンジ集~
- よくわかるNoratetsu Lab(2023年版)1月~3月
- 【AutoHotkey】おみくじとじゃんけんを作ってみる
- JavaScript日誌:一歩進んだら十回足踏みせよ
- NTA-DIY:1ヶ月目④~for文を解らないまま使う~
「ノートテイキングアプリDIY体験記」シリーズの記事
- NTA-DIY:何をどう書いたらいいか考え直す
- NTA-DIY:2ヶ月目④~よくわからん三銃士~
- NTA-DIY:糸口②~環境を整えよう~
- NTA-DIY:なんでこれを書いているのか考え直す
- NTA-DIY:2ヶ月目③~付箋ツールを自作してみる-後編-~
- NTA-DIY:2ヶ月目②~付箋ツールを自作してみる-前編-~
- NTA-DIY:糸口①~結局何をどうしたら動くのさ~
- NTA-DIY:2ヶ月目①~アウトライナーを自作してみる~
- NTA-DIY:前日譚④~VBScriptの感動~
- NTA-DIY:余談①~ScrapboxとGitの貢献~
- NTA-DIY:1ヶ月目⑩~初めてのノートテイキングアプリDIY~
- NTA-DIY:前日譚③~Excelの拡張としてのデジタルDIY~
- NTA-DIY:1ヶ月目⑨~ブックマーク管理ツールを作ってみる~
- NTA-DIY:1ヶ月目⑧~ScrapboxのUserScriptを作ってみる~
- NTA-DIY:1ヶ月目⑦~DOMとAmazonブックマークレット~
- NTA-DIY:1ヶ月目⑥~実作:簡単なブックマークレット~
- NTA-DIY:1ヶ月目⑤~小さいチャレンジ集~
- NTA-DIY:1ヶ月目④~for文を解らないまま使う~
- NTA-DIY:前日譚②~JavaScriptを書けると何が嬉しいの?~
- NTA-DIY:1ヶ月目②~感動したもの勝ち~
- NTA-DIY:1ヶ月目①~どうせならTypeScriptを覚えればいいんじゃね~
- NTA-DIY:前日譚①~カスタマイズできる人ずるい!~
- NTA-DIY:まえがき
他の「JavaScript」タグの記事