2012年11月7日水曜日

ハイローゲーム3桁対応(改)

前回のハイローゲームで、数値入力時に[0]を最初に入力すると3桁入力できないバグが見つかりました。

ハイローゲーム3桁(改)

要するに、入力を変数でカウントアップしていたのですが、[0][1]や[0][0][1]は数値としては1なので、カウントだけ上がって桁数が増えない状態になっていました。


    function doNumButton(n) {
      if (cntNum < 3) {
        inpNum = inpNum*10 + n;
        cntNum++;
      }
      showNumber();
    }

正しくは、[0][1][2]の次に[3]を入力したら123としたいので、次のように変更しました。

    function doNumButton(n) {
      if (inpNum < 100) {       // 3桁目まで入力可能
        inpNum = inpNum*10 + n;
      }
      showNumber();
    }

つまり表示している数値の桁数で判定するように変更したわけです。

さて、バグ修正だけではなんなので、ついでにキー入力にも対応してみました。
アンドロイドとしてはキー入力なんて関係ないのですが、PCで操作するときは、いちいちマウスで操作するよりもキーのほうが楽です。



    document.onkeypress = function(e)
    {
        var code = e.charCode;
        var key = String.fromCharCode(e.keyCode);
        if (code == 0x0D) {
          doExeButton();
        } else if (key == "-") {
        doClrButton();
        } else if ((key >= "0") && (key <= "9")) {
          doNumButton(Number(key));
        }
    }

キー入力のイベントで、押されたキーに応じて対応するボタンの処理を呼び出しています。
0x0DはEnterキーのキーコードです。Enterキーを押すと決定ボタンの処理を行うようにしました。
-キーはクリアボタン、0~9のキーはそれぞれ対応する数字のボタンです。

0 件のコメント:

コメントを投稿