<html> |
【保存ファイルの準備】 エディタ(メモ帳)とブラウザ(Internet Explorer)を使って基本のタグを書いたHTMLファイルを作成します。 ・ <title></title>の役割を確認しよう。
|
| <html> <head> <title>スロットゲーム</title> </head> <body> <h3>スロットゲーム</h3> <hr> </body> </html> |
【文字の表示】 次の工程を1つ1つ保存とブラウザの更新を繰り返して、どこがどう変わるのか確認しながらやると、わかりやすいでしょう。 (1)<body></body>の間に文字を書きます。
|
| <html> <head> <title>スロットゲーム</title> </head> <body> <h3>スロットゲーム</h3> <hr> <table border="2"> <tr><td>☆</td><td>☆</td><td>☆</td></tr> <tr><td>☆</td><td>☆</td><td>☆</td></tr> </table> </body> </html> |
【テーブルの作成】 テーブルをタグの意味を考えながら作成しましょう。
(1)<table></table>で大きな棚を作ります。
|
<html> <script language="JavaScript"> |
【スクリプトの準備】 スクリプトを書くための準備をしましょう。<script>タグを用意します。 次に初期設定を作ります。
上の例では要素の数は6ですが、要素の番号は0〜5になります。1つの小箱を指す場合は「img[0]」と「[]」に要素の番号を入れて書きます。 スクリプトの各行の最後には「;」が必要になることも忘れないでください。
|
||||||||||||||||||||||
<html> <script language="JavaScript"> |
【表示場所の作成】 スロットの絵柄(出目)を表示するために、テーブル内の箱に名前をつけます。 次に、テーブルの2行目にはスロットらしく停止ボタンを置きます。「☆」を消して、<input>タグを書きます。これで見た目はスロットらしくなりました。 テーブルが横に長くなると判りにくいので、改行を入れて、見た目を整頓しています。こうしておくとコピーもしやすくなります。
|
<html> <script language="JavaScript"> document.getElementById("dram0").innerHTML = img[0]; |
【初期設定】 スクリプトに出目の最初の状態がハズレになるように書きましょう。これがページを開いたときの最初の状態になります。 ここでは配列変数imgから絵柄を取り出して、テーブルの3つの箱に入れています。 スクリプトを細かく見ると、追加の3行はそれぞれ3つの箱を示しています。違いは箱のIDを示す部分ですね。
プログラムで使われる「=」は、右から左へデータを移し替える「代入」という意味になります。
|
| <html> <head> <title>スロットゲーム</title> </head> <body> <h3>スロットゲーム</h3> <hr> <table border="2"> <tr> <td><div id="dram0">☆</div></td> <td><div id="dram1">☆</div></td> <td><div id="dram2">☆</div></td> </tr> <tr> <td><input type="button" value="おす" onClick="dramstop(0)"></td> <td><input type="button" value="おす" onClick="dramstop(1)"></td> <td><input type="button" value="おす" onClick="dramstop(2)"></td> </tr> </table> <script language="JavaScript"> document.getElementById("dram0").innerHTML = img[0]; function dramstop(btn) { |
【ボタンにイベントを追加】 ボタンを押すと、出目の絵柄が変化するようにプログラムを書いてみましょう。
ボタンには「onClick」というイベント対応の指示を書いています。これはボタンをクリックしたら次のことをしなさいという意味になります。ここでは、次のこととは「dramstop()」を呼び出すことです。このとき、()の中に引き渡したいデータを置くことができます。 では、次にユーザー関数「dramstop()」の方を見てみましょう。
dramstop()の1行目は、変数rに代入する式です。
次に2行目を見てみましょう。
|
| <html> <head> <title>スロットゲーム</title> </head> <body> <h3>スロットゲーム</h3> <hr> <table border="2"> <tr> <td><div id="dram0">☆</div></td> <td><div id="dram1">☆</div></td> <td><div id="dram2">☆</div></td> </tr> <tr> <td><input type="button" value="おす" onClick="dramstop(0)"></td> <td><input type="button" value="おす" onClick="dramstop(1)"></td> <td><input type="button" value="おす" onClick="dramstop(2)"></td> </tr> <tr> <td colspan="3"><input type="button" value="リセット" onClick="dramreset()"></td> </tr> </table> <script language="JavaScript"> dramreset(); function dramreset() { function dramstop(btn) { |
【初期化用のボタンを追加】 スロットを使ったら、表示を最初の状態にリセットする機能を作りましょう。 リセットの機能は「dramreset()」というユーザー関数にまとめて、ボタンから呼び出しましょう。
変数配列imgは、なぜdramreset()の中に入れないのか分かりますか? |
<html> <script language="JavaScript"> dramreset(); function dramreset() { function dramstop(btn) { |
【問題点:出目を選べる】 同じボタンを何度も押して絵柄を替えることができたのでは、公正な遊びができません。 プログラムからボタンを選ぶ必要があるので、テーブルの前後に<form></form>を追加してフォームに名前を付けます。
まず初期化のプログラムを書きましょう。
次に、dramstop()で、ボタンを押した時に、ボタンを使用禁止にします。
|
<html> (省略) |
【改良点:得点の表示(1)】 スロットの出目の上に得点が表示されるようにしましょう。 テーブルの1行目に表示の場所を新たに作ります。
得点表示部分も横に3つの箱を1つにして使います。「colspan」が<th>タグ内にあります。 |
(省略) <script language="JavaScript"> dramreset(); function dramreset() { function dramstop(btn) { |
【改良点:得点の表示(2)】 それではスクリプトを書きましょう。 次に、絵柄ごとに得点を決めましょう。絵柄の番号がハズレは「0」で、一番上が「5」でした。絵柄の順番がそのまま得点にできそうです。
得点の表示部分はIDが「score」になっていますので、getElementById()を使っています。 これでほぼ基本的なスロットゲームとしての機能を組み入れたことになります。 |
【完成】
今後は、点数を大きくしたり、背景に色を付けたり、絵柄に色を付けたり、絵柄を画像に置き換えたり、スロットの絵柄の組み合わせ(役)で点数を加算する仕組みなど、を考えて改良しましょう。
改良のためのヒント:
・点数を大きくしたい
乱数に掛け算します。例:r = r * 10;
・絵柄に色を付けたい
<font>タグとcolorオプションを使う。ただし、「"」の中では「"」は使えないので「'」を使うこと。例:"<font color='#FFFF00'>★</font>"
・絵柄を画像にしたい
<img>タグを使いましょう。ファイル名はsrcで指定します。例:"<img src='photo.jpg'>"
・絵柄が揃ったら点数を加算したい
ボタンを押した後に、3つの絵柄が同じことを確認して点数を増やします。