JavaScript
数当てっぽい2015/11/22
簡単な数当てゲームを作ってみた
4桁の数字を当ててね
- 遊び方 -
テキストボックスに4桁の数字を入れて[go!]ボタンをクリックしましょう
すると適当なヒントがもらえるので、それを頼りに数字を当てましょう
正解した後に[reset]ボタンを押すともう1回別の数字を当てるゲームが始まります
script.js
4桁の数字を当ててね
- 遊び方 -
テキストボックスに4桁の数字を入れて[go!]ボタンをクリックしましょう
すると適当なヒントがもらえるので、それを頼りに数字を当てましょう
正解した後に[reset]ボタンを押すともう1回別の数字を当てるゲームが始まります
$(function(){ var randnum = Math.floor(Math.random() * 9000)+1000; // 乱数を生成 var count = 1; // 手数を初期化 $("#goButton").click(function clickFunc(){ // ボタンがクリックされたら var num = $("#number").val(); // 入力値を取得 if(num.match(/\d{4}/) == num){ // 入力値が4桁の数字なら var diff = num - randnum; // 入力値と乱数の差を算出 if(diff > 5000){ // ~5001 post_mes(count++ + "手:" + num + ":とても遠い!もっと小さいです"); }else if(diff > 1000){ // 5000 ~ 1001 post_mes(count++ + "手:" + num + ":もーっと小さいです"); }else if(diff > 100){ // 1000 ~ 101 post_mes(count++ + "手:" + num + ":もっと小さいです"); }else if(diff > 10){ // 100 ~ 11 post_mes(count++ + "手:" + num + ":もうちょっと小さいです") }else if(diff > 0){ // 10 ~ 1 post_mes(count++ + "手:" + num + ":とても近い!もう少し小さいです"); }else if(diff == 0){ post_mes(count++ + "手:" + num + ":正解です!").css({ "color": "red", "font-weight": "bold" }); // clickイベントを変更 $("#goButton").val(" reset ").unbind("click").bind("click", function(){ post_mes("new game start !"); // メッセージを出力 count = 1; // 手数を初期化 randnum = Math.floor(Math.random() * 9000)+1000; // 乱数を生成 $(this).unbind("click").bind("click", clickFunc).val(" go! "); // クリックイベントを復活 } ); }else if(diff > -10){ // -1 ~ -9 post_mes(count++ + "手:" + num + ":とても近い!もう少し大きいです"); }else if(diff > -100){ // -10 ~ -99 post_mes(count++ + "手:" + num + ":もうちょっと大きいです"); }else if(diff > -1000){ // -100 ~ -999 post_mes(count++ + "手:" + num + ":もっと大きいです"); }else if(diff > -5000){ // -1000 ~ -4999 post_mes(count++ + "手:" + num + ":もーっと大きいです"); }else{ // -5000 ~ post_mes(count++ + "手:" + num + ":とても遠い!もっと大きいです"); } }else{ // 入力エラー post_mes(num + ":半角数字を4桁入力してください"); } }); // メッセージを表示する関数、戻り値はjQueryオブジェクト function post_mes(str){ var jquery_obj = $("<p>").text(str); // メッセージを作成 $("#message").prepend(jquery_obj); // メッセージを追加 return(jquery_obj); // メッセージを返す } });