JavaScript ブラックジャック
JavaScript製のカードゲーム「ブラックジャック」です。IE6とNN7で動作を確認しました。JS製のブラックジャックなんてのは星の数ほどあると思いますが、画像を一切使用していないのと、ページ内に比較的簡単に設置出来るあたりが特徴でしょうか。自サイトに置いてもあんまり嬉しくないとは思いますが、好きに使ってもらって構いません。まあ最低限ウチから借りたってことぐらいは書いて欲しいですけども。
サイズとかもそれなりに変更がきくんで、とりあえずデフォルトのサイズと、ちょい大きめのサイズの二つのブラックジャックを下に置いときます。もちろん両方ともプレイ出来ます。
JavaScriptがOFFになっているか、ブラウザが対応していません。
JavaScriptがOFFになっているか、ブラウザが対応していません。
ルール
ブラックジャックは、手札の合計を21を超えない範囲で21に近づけ、ディーラの手札と競うゲームです。Aは1か11の好きな方に数えることができ、2〜9はそのままの数字、10とJとQとKは10カードと呼び、10として数えます。
ゲームの流れ
- 賭ける額を決めます。このゲームでは、最低10pt.から最高9990pt.までの、10pt.単位で賭けることになります。
- カードが二枚づつ配られます。プレイヤには二枚とも表向きに、ディーラには一枚が表、一枚が裏向きに配られます。
- 自分のカードの合計値を見て、もう一枚カードを引くか、あるいは現在の手で勝負するかを決めます。カードの合計値が21を超えた場合には、その場で負けとなります。
- カードを引くのを終えると、今度はディーラが裏向きのカードを開き、続けて自分の手を作ります。ディーラには選択権はなく、合計値が17以上になるまでカードを引き続けます。ここでディーラの手が21を超えた場合には、プレイヤの勝ちになります。
- 双方の手が出来上がったら、合計値を比較します。より高い方が勝ちです。プレイヤが勝った場合には、最初に賭けた額の2倍の額を得られます。合計値が同じであった場合には、引いたカードの枚数の多い方の勝ちになります。枚数も同じ場合には引き分けとなり、賭け金が戻ってきます。
- 手持ちのpointが10pt.に満たない場合には賭けることが出来ず、ゲームオーバーとなります。そうでなければ最初に戻り、ゲームを続けます。
役
- 最初に配られた二枚のカードがAと10カードであった場合にはブラックジャックと呼び、ブラックジャック同士の引き分け以外には勝ちとなる最強の手札となります。ブラックジャックで勝つと、最初に賭けた額の2.5倍の額を得られます。
- 21を超えずにカードを五枚目まで引いた場合、実際の合計値に関わらず、21として扱います。通常の21と同じ扱いであり、ブラックジャックには負けます。
用語
- Bet 賭けや賭け金のことです。
- Deal ディーラがカードを配ることです。
- Hit もう一枚カードを引くことです。
- Stand カードを引くのをやめ、現在の手で勝負することです。
- Busted カードの合計値が21を超えることです。
- Surrender
双方にカードが二枚づつ配られた時点で、負けを宣言することです。賭けた額の半分が戻ります。
- DoubleDown
双方にカードが二枚づつ配られた時点で、賭けた額と同額を上乗せし、あと一枚だけカードを引いて、三枚の合計値で勝負することです。
- Split
最初に配られた二枚のカードが等価値(ペアや10カード同士)である際に、カードを分けて二つの手を作って勝負することです。二つ目の手のために、賭けた額と同額が必要になります。また、手を分けた際にはブラックジャックは認められません。
- Insurance
最初に配られたディーラの表向きのカード(upcard)がAである際に、賭けた額の半額を保険として、「ディーラの手がブラックジャックである」ことに新たに賭けることです。要するに、ディーラの裏向きのカード(holecard)が10カードか否かに賭けるということになります。この賭けに勝てば、新たに賭けた額の3倍の額を得られ、結果的に差し引き0になります。
- EvenMoney
自分の手がブラックジャックである際に賭けるInsuranceのことです。新たな賭けに勝っても負けても結果的に通常の配当と同額を得られるため、宣言するとその場で通常の配当を得られます。
設置方法
下記のファイルを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, 100, 8, 100, 1000, 'black', 'black', 'limegreen', 'black', 'white', 'royalblue);
注意点
設置要素のidをsetIdとした場合、設置要素内の要素に、下記のようなidが複数指定されます。
idはページ内で必ずユニークなものでなければいけませんので、これらと被らないように注意してください。
その他
遊び方よくわかんねーよとか、設置してえんだけどよぐわがんねとか、あとはバグがあったぜってな場合は掲示板にでも書いたってください。メールでもいいけども。