JavaScript ブラックジャック

 JavaScript製のカードトランプゲーム「ブラックジャック」です。IE6とNN7で動作を確認しました。JS製のブラックジャックなんてのは星の数ほどあると思いますが、画像を一切使用していないのと、ページ内に比較的簡単に設置出来るあたりが特徴でしょうか。自サイトに置いてもあんまり嬉しくないとは思いますが、好きに使ってもらって構いません。まあ最低限ウチから借りたってことぐらいは書いて欲しいですけども。
 サイズとかもそれなりに変更がきくんで、とりあえずデフォルトのサイズと、ちょい大きめのサイズの二つのブラックジャックを下に置いときます。もちろん両方ともプレイ出来ます。

JavaScriptがOFFになっているか、ブラウザが対応していません。

JavaScriptがOFFになっているか、ブラウザが対応していません。


ルール

 ブラックジャックは、手札の合計を21を超えない範囲で21に近づけ、ディーラの手札と競うゲームです。Aは1か11の好きな方に数えることができ、2〜9はそのままの数字、10とJとQとKは10カードと呼び、10として数えます。

    ゲームの流れ
  1. 賭ける額を決めます。このゲームでは、最低10pt.から最高9990pt.までの、10pt.単位で賭けることになります。
  2. カードが二枚づつ配られます。プレイヤには二枚とも表向きに、ディーラには一枚が表、一枚が裏向きに配られます。
  3. 自分のカードの合計値を見て、もう一枚カードを引くか、あるいは現在の手で勝負するかを決めます。カードの合計値が21を超えた場合には、その場で負けとなります。
  4. カードを引くのを終えると、今度はディーラが裏向きのカードを開き、続けて自分の手を作ります。ディーラには選択権はなく、合計値が17以上になるまでカードを引き続けます。ここでディーラの手が21を超えた場合には、プレイヤの勝ちになります。
  5. 双方の手が出来上がったら、合計値を比較します。より高い方が勝ちです。プレイヤが勝った場合には、最初に賭けた額の2倍の額を得られます。合計値が同じであった場合には、引いたカードの枚数の多い方の勝ちになります。枚数も同じ場合には引き分けとなり、賭け金が戻ってきます。
  6. 手持ちのpointが10pt.に満たない場合には賭けることが出来ず、ゲームオーバーとなります。そうでなければ最初に戻り、ゲームを続けます。


設置方法

 下記のファイルをDLして拡張子を「js」に変更し、設置したいHTMLファイルと同じディレクトリに置いてください。文字コードはSJISです。外部JSファイルを利用する際には、HTMLファイルと文字コードと合わせる必要がありますので、HTMLファイルをEUCで記述しているなどという場合には、適宜変換してお使いください。
 blackjack.txt
 あとは以下のような感じでテキトーに記述してください。デフォルト設定で表示させる一例です。

<html>
<head>
<meta http-equiv="content-script-type" content="text/javascript">
<!-- 「blackjack.js」を外部ファイルとして読み込む -->
<script type="text/javascript" src="blackjack.js"></script>
</head>
<body>

<!-- ブラックジャック書き出し用の要素 -->
<p id="bj">
JavaScriptがOFFになっているか、ブラウザが対応していません。
</p>

<!-- ブラックジャックのセット -->
<script type="text/javascript"><!--
blackJack = new Array();
blackJack['bj'] = new BlackJack('bj');
//-->
</script>

</body>
</html>

 ブラックジャック書き出し用の要素は、divでもspanでもなんでもいいですが、必ずそのページ内でユニークなidをつけてください。同じidが複数あると、まともに動作しません。

 ブラックジャックのセットをする際には、まず「blackJack」(固定)という名前の配列を作り、ブラックジャックをセットしたい要素のidを引数として「BlackJack」クラスのインスタンスを生成し、それを、先のidを添え字とした配列「blackJack」に格納します。うん、自分で書いてて何言ってんだかわかんなくなってきた。
 要するに、ブラックジャックをセットしたい要素のidを「setId」とすると、

blackJack['setId'] = new BlackJack('setId');
てな感じです。


オプション設定

 インスタンス生成時の引数によってサイズや色を変更することが出来ます。設置要素のid以外は省略可能です。

引数 = (設置要素のid, 初期点数, サイズ基本値, カード配布待ち時間(msec), 文字表示待ち時間(msec), 文字色, 一番外側の枠線の色, フィールドの背景色, 枠線の色, カードの色, カードの裏面の色)

 初期点数は最低10〜最高999999999です。サイズ基本値は、大体8〜20くらいが無難です。

 id以外の引数を省略した場合のデフォルト設定は以下の通りです。


注意点

 設置要素のidをsetIdとした場合、設置要素内の要素に、下記のようなidが複数指定されます。

 idはページ内で必ずユニークなものでなければいけませんので、これらと被らないように注意してください。


その他

 遊び方よくわかんねーよとか、設置してえんだけどよぐわがんねとか、あとはバグがあったぜってな場合は掲示板にでも書いたってください。メールでもいいけども。