スロットマシン


スロットマシン を実行します。


プログラムの説明

  1. 賭点を設定してスロットマシンを回します。
    START ボタンをクリックすると3個のスロットが回転を始めます。
    3個の STOP ボタンでそれぞれのスロットが停止します。
    二枚揃うと賭点と同額の、三枚揃うと二倍の点数が貰えます。
  2. <body> で最初に img タグで3枚の画像を並べて表示します。
    form から賭点を設定して START ボタンでゲームを開始します。
    <table name="Board" border="0","0" cellspacing=0 cellpadding=0>
        <tr>
            <td width="60"><img src="im0.jpg">
            <td width="60"><img src="im0.jpg">
            <td width="60"><img src="im0.jpg">
        </tr>
    </table><br>
    <form name="Ctrl">
        <input type="button" value="  STOP  " onClick="stop(iD0,0)">
        <input type="button" value="  STOP  " onClick="stop(iD1,1)">
        <input type="button" value="  STOP  " onClick="stop(iD2,2)"><br><br>
        <input type="button" value="  START  " onClick="starts()"><br><br>
        持点<input type="text" name="ds" value="1000" size=5><br>
        賭点<input type="text" name="ds" value="20" size=5>
    </form>
    
  3. START ボタンで呼び出される starts() 関数です。
    123,159,186 は画像を変える時間です。
    iD0, iD1, iD2 は回転するスロットのIDです。
    fl[] はスロットの回転フラグです。
    K はプレイヤの賭点で、M はプレイヤの持点です。
    fl1 は賭点の設定フラグです。
    function starts(){
        clearInterval(iD0);
        clearInterval(iD1);
        clearInterval(iD2);
        iD0=window.setInterval("upDate(0)",123);
        iD1=window.setInterval("upDate(1)",159);
        iD2=window.setInterval("upDate(2)",186);
        fl[0]=1;
        fl[1]=1;
        fl[2]=1;
        fl1=1;
        var str = document.Ctrl.ds[1].value;
        K= toChar_8(str);
        M=M-K;
        document.Ctrl.ds[0].value = M;
        document.Ctrl.ds[1].value = K;    
        Disp();
    }
    
  4. STOP ボタンがクリックされたときに呼び出される stop() 関数です。
    a 番目のスロットを停止します。
    3枚のスロットが停止すると hantei() 関数を呼び出します。
    function stop(iD,a){
        clearInterval(iD); 
        fl[a]=0;
        x=fl[0]+fl[1]+fl[2];
        if (x==0) hantei();
        Disp();
    }
    
  5. starts() から呼び出されて ic[i] に回転する画像の番号を設定します。
    function upDate(i){
        ic[i] = ic[i]+1;
        if (ic[i] > 3) ic[i]=0;
        Disp();
    }
    
  6. 回転するイメージを表示する Disp() 関数です。
    <body> で描画した3個のイメージのオブジェクトを直接書き換えるのでページが切り替わる(遷移する)ことはありません。
    function Disp(){
        document.images[0].src="im"+ic[0]+".jpg";
        document.images[1].src="im"+ic[1]+".jpg";
        document.images[2].src="im"+ic[2]+".jpg";
    }
    
  7. スロットが停止したときに結果を調べる hantei() 関数です。
    function hantei(){
        if(fl1==1){
              if(ic[0] == ic[1]) M=Number(M)+Number(K);
              if(ic[1] == ic[2]) M=Number(M)+Number(K);
              if(ic[2] == ic[0]) M=Number(M)+Number(K);
        }
        fl1=0;
        document.Ctrl.ds[0].value = M;
        document.Ctrl.ds[1].value = 20;  
    }
    
  8. Load されたときに一度だけ呼ばれる init() 関数です。
    function init(){
        Disp();
    }