#6 【React.jsで、BlackJackを作る】:STANDしてみる
これまで
前回は、カードを重ねて表示するようにしました。
BlackJack アプリの sandbox
BlackJack アプリの sandbox は以下です。
この sandbox は、連載が進むのと同時に更新されていきます。
「私も作りたい!」という方は、フォークして一緒に作り始めることができます。
はじめから作りたい方はこちら
STAND ボタンを押したときの処理を実装する
まずはプレイヤーが STAND(「もうカードは引きません」という宣言)できるようにしましょう。
src/BlackJack.js
関数 doStand() を見つけてください。
元のコードはこちらです。
function doStand() {
const card = getCard();
setCard(card);
const isWin = getRankNum(card.rank) < 7;
setIsWin(isWin);
isWin ? setWinCount(winCount + 1) : setLoseCount(loseCount + 1);
setAnswered(true);
}
「STAND しました」という state を定義して、この関数で更新するようにしましょう。
state の名前を考える
「STAND しました」という状態を表現する名前を考えてみましょう。
・isStand:簡潔ですが「スタンドかどうか」となり、意味合いとしては少しずれている印象です
・isStanded:「STAND」を動詞として扱い、「STAND したかどうか」のような意味合いです
・isDeclaredStand:ちょっと長いですが、文字通り「STAND が宣言されているか」という意味合いです
isDeclaredStand にしました
ちょっと長いのが少し気になりますが、私は「パッとみてわかる」ほうが好みなので isDeclaredStand にします。
state の定義と更新
state の名前が決まりましたので state isDeclaredStand を定義して、関数 doStand() で更新しましょう。
const [isDeclaredStand, setIsDeclaredStand] = useState(false)
function doStand() {
setIsDeclaredStand(true)
}
現在の画面
画面には特に変更はありませんでした。
詳しい変更はこちら
Codesandbox は GitHub連携ができます。
以下は今回のコミットによる差分です。
次回
プレイヤーが STAND できるようになったので、次回はディーラーがカードを引く処理を実装します!
この記事があなたのお役に立ちましたら、よろしければサポートをお願いいたします! より良い記事をお届けできるよう、活動費に充てさせていただきます。