見出し画像

#7 【React.jsで、BlackJackを作る】:ディーラーの処理を実装する、その前に

これまで

前回は、プレイヤーが STAND できるようにしました。

BlackJack アプリの sandbox

BlackJack アプリの sandbox は以下です。

この sandbox は、連載が進むのと同時に更新されていきます
「私も作りたい!」という方は、フォークして一緒に作り始めることができます。

はじめから作りたい方はこちら

「ディーラーがカードを引く処理を実装する」の前に

ディーラーの処理を実装する前に、前提となるルールを確認しておきます。

ディーラーはカードの合計が 17 以上になると HIT できない

ブラックジャックで、ディーラーがカードを引く際のルールはとてもシンプルです。
ディーラーは、自身のカードの数字の合計が 17 以上になるまでカードを引き続けます。

ソフトハンドとハードハンド

ただしブラックジャックの場合、「A」というカードは少し特殊な扱いをします。
それは、「A」は「1」または「11」のどちらでもよいということです。

例をいくつか示します。
・ハンドが「A」「3」のとき 「4」 または「14」のソフトハンド
・ハンドが「A」「3」「4」のとき「8」または「18」のソフトハンド
・ハンドが「A」「3」「8」のとき「12」のハードハンド

ソフトハンドは、「A」を「1」または「11」のどちらで扱っても 21 を超えない状態のハンドのことを言います。
一方、ハードハンドは一つの解釈しかできない状態のハンドのことを言います。

上記の三つめの例を見てみてください。
もし「A」を「11」として扱うと、カードの合計が「22」となりバーストしてしまいます
「1」または「11」のどちらで解釈してもよいですが、わざわざ負けるほうで解釈する必要はないですよね。

「Dealer must stand on all 17’s」のルールで実装します

ディーラーは、自身のカードの数字の合計が 17 以上になるまでカードを引き続ける、というのは前述の通りです。
ただ「ソフト 17」の場合はどうするか、というのはプレイしているカジノによって異なります

今回の BlackJack ゲームでは、ディーラーは「ソフト 17」 でも必ずスタンドするという「Dealer must stand on all 17’s」のルールを採用します。

参考

BlackJack ゲームを作成するにあたり、以下のサイトでルールを勉強させていただきました。
どこよりも詳しくわかりやすいです。

現在の画面と詳しい変更

今回は変更はありませんでした。

次回

ルールの確認ができましたので、次回は処理を実装していきましょう!

この記事があなたのお役に立ちましたら、よろしければサポートをお願いいたします! より良い記事をお届けできるよう、活動費に充てさせていただきます。