こんにちは、さるまりんです。
すみません。
かなりベタなつまらないものを、ベタベタな実装で作ってしまいました。。。
タイトルの通りJavaScriptで何かランダムなことをしたいなと思いまして。
ランダムなこと。運まかせ。そういうことです。
おみくじです。
ランダムなことをするにはランダムな数値を生成、それを元に条件分岐し実行することを変える、となります。
JavaScriptでランダムな数値を生成するには
Math.random()
を使います。
全体ではこんなHTMLとJavaScriptを書いています。
HTML
<div id="button-area">
<button id="my-button">押してみて</button>
</div>
<div id="result-area" style="display: none;">
あなたの運勢は「<span id="result">xxxx</span>」です。
</div>
JavaScript
jQuery(function($){
$('#my-button').click(
function(){
var value = Math.random();
// 大吉 0.25、中吉 0.10、小吉 0.13、吉 0.25、末吉 0.15、凶 0.11
var border = [0.25, 0.35, 0.48, 0.73, 0.88, 0.99];
var result = '大凶';
var color = '#dc143c';
if(value < border[0]) {
result = '大吉';
color = '#006400';
} else if (value >= border[0] && value < border[1]) {
result = '中吉';
color = '#556b2f';
} else if (value >= border[1] && value < border[2]) {
result = '小吉';
color = '#32cd32';
} else if (value >= border[2] && value < border[3]) {
result = '吉';
color = '#191970';
} else if (value >= border[3] && value < border[4]) {
result = '末吉';
color = '#2e8b57';
} else if (value >= border[4] && value < border[5]) {
result = '凶';
color = '#4b0082';
}
$('#my-button').text('もう一度?');
$('#result').css('color', color);
$('#result').text(result);
$('#result-area').show();
});
});
やっていることはいたってシンプルです。
ボタンが押された時に
1. 初期化
最初の段階では結果は大凶にしてあります。配列には各結果の境界となる値を持っています。
2. ランダム値を生成
Math.random()
では0以上1未満の数値が生成されます。
3. 生成した値を元におみくじの結果と表示の色を決定
生成された値がどの範囲に当たるかをif-else
で検査しています。
4. 結果表示
結果の文字列と色を設定、結果部分を表示します。同時に押されたボタンのラベルの文字列も変更しています。
でも、もっと格好いい実装がありますよね。
これからはJavaScriptやCSS、フロントの技術を勉強したいなって思っています。
スマートにわかりやすい実装ができるプログラマーになりたいと思います。
読んでくださってありがとうございました。
それではまた!
※結果には何の根拠もありません。何となく気分が悪ければ何回でも押してみてくださいね。