HI and LOW Game


HI and LOW を実行します。


プログラムの説明

  1. 乱数で発生させたカード(1~13)が7より大きいか小さいかを当てるゲームです。
    HI または LOW をクリックすると「7より大きいか小さいか」を判定します。
  2. <body> の form から HI または LOW を引数にして func() 関数を呼び出します。
    パソコンで戻るボタンをクリックすると game_index に戻るのですが、スマホでは一度に戻れません?
    そこでゲームを終了する END ボタンを追加しました。
    END を選択すると、リンク元に関係なく game_index.html が呼び出されます。
    また History には過去のリンクがそのまま残っています。
    <form>
    <input type="button" value="HI" size=20 onClick="func('HI')"><br><br>
    <input type="button" value="LOW" size=20 onClick="func('LOW')"><br><br><br>
    <input type="button" value="END" size=20 onClick="func('END')"><br><br>
    </form>
    
  3. func(ans) 関数では渡されたパラメータ(hit, miss)を取得します。
    乱数で1~13を発生して HI, LOW の応答と比べて「あたり,はずれ」を判定します。
    成績(hit, miss)を更新して表示します。
    「ReTray」をクリックするとゲームを続けます。
    "END" ボタンをクリックすると location.href = "game_index.html" で game_index を呼び出します。
    function func(ans)
    {   var hit;
        var miss;
        var param = new Array();
        if (window.location.search.length>4)
        {   //window.alert(window.location.search);
            var query = window.location.search.substring(1);
            var parameters = query.split('&');
            for(i=0; i<parameters.length; i++)
            {   var element = parameters[i].split('=');
                var paramName = decodeURIComponent(element[0]);
                var paramValue = decodeURIComponent(element[1]);
                param[paramName] = parseInt(paramValue);
            }
            hit = param["hit"];
            miss = param["miss"];
        }
        else
        {   hit = 0;
            miss = 0;
        }
        if (ans=="END") location.href = "game_index.html";
        else
        {   n= Math.floor(Math.random() * 13)+1;
            document.write("<center><br><img src=h" + n + ".gif><br><br>");
            if ((ans=="HI" && n>7) || (ans=="LOW" && n<7))
            {   document.write("<h3>Hit</h3>");
                hit++;
            }
            else
            {   document.write("<h3>Miss</h3>");
                miss++;
            }
            document.write("hit=" + hit + "  :  miss=" + miss + "<br><br>");
            var param = "?hit=" + hit + "&miss=" + miss;
            document.write("<a href='hi_low.html" + param + "'>ReTray</a><br>");
            document.write("<h3>HI or LOW ?</h3></center>");
        }
    }
    
  4. カードの描画は1~13(h1.gif ~ h13.gif)の13枚の画像を使います。
    n が乱数で発生したカードの番号で、これを使って img タグで h1.gif ~ h13.gif の画像を吐き出します。
        n= Math.floor(Math.random() * 13)+1;
        document.write("<center><br><img src=h" + n + ".gif><br><br>");
    
  5. ReTray では hit と miss をパラメータにして hi_low.html を呼び直します。
        var param = "?hit=" + hit + "&miss=" + miss;
        document.write("<a href='hi_low.html" + param + "'>ReTray</a><br>");