Spells and Charms

プログラミング(呪文学)の学習記録。

はじめてゲームつくったよ!

いつもプログラミングのことを教えてくださっているCTOから、
こんな課題をいただき、ゲームを作成してみました。

CSSはつくっていないのでごく簡素なもので、
仕組みづくりのJavaScriptの部分を頑張った感じです。
 

 お題

徳川さんはプログラミングの練習をしています。
練習で下記のような動作をするhtmlとJSでできたプログラムを作成してみることにしました。

画面(html):
1. 数字が入力できるテキストボックスとスタートボタン、決定ボタンを用意する
2. 下記のプログラムが記述されたJavaScriptファイルを読み込む

プログラム
1. スタートボタンが呼ばれると0 < x < 1000となるようなxをランダムに選ぶ
2. ユーザがテキストボックスに数字を入力して決定ボタンを押すと、下記の例のようにテキストをアラートボックスで表示し、正解がでたら終了する。
3. スタートボタンを押すと1に戻り再スタートできる

例1) x = 777 のとき

ステップ1:
ユーザ入力: 500
表示: 正解の数字は500 < x < 1000 です。


ステップ2:
ユーザ入力: 800
表示: 正解の数字は500 < x < 800 です。

ステップ3:
ユーザ入力: 750
表示: 正解の数字は750 < x < 800 です。

ステップ4:
ユーザ入力: 900
表示: 正解の数字は750 < x < 800 です。

ステップ5:
ユーザ入力: 777
表示: 正解です!

 

JavaScript
var x = 0;
 var userNumber;
 var maxInSmallerArea;
 var minInGreaterArea;
 var result;

 function startFunction(){ 
    document.quiz.usertext.value = "";
    maxInSmallerArea = 0;
    minInGreaterArea = 1000;
     x = 1 + Math.floor( Math.random() * 1000 );  
    console.log(x);
 };
 
function executeFunction(){

    function getTextInput(){
        userNumber = Number(document.quiz.usertext.value);
        }
        getTextInput();  

    function alertFunction(){
            if(x === userNumber){
                alert('正解です!');
            }else{
                if(userNumber < x && userNumber > maxInSmallerArea){
                    maxInSmallerArea = userNumber;
                }else if(userNumber > x && userNumber <  minInGreaterArea){
                    minInGreaterArea = userNumber
                };
            alert(maxInSmallerArea + '< x < ' + minInGreaterArea + 'です!');
            };
        }
        alertFunction();
};

 

HTML
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>tokugawa finite</title>
  </head>
  
  <body>
      <div class="container">
          <h1>数字あてクイズ!</h1>
      <p>コンピュータがランダムに選ぶ数字をあててみて。 ヒント:0より大きく1000より小さいよ。</p>
        <form name="quiz">
            <p><input type="button" value="スタート" onclick = 'startFunction()'></p>
            <input class="box" type="text" id="inputbox" name='usertext'>
            <p><input type="button" value="決定" onclick = 'executeFunction()'></p>

        </form>
        </div>

      <script type="text/javascript" src="tokugawa functionまとめた.js"></script>
</body>

</html>