練習問題】Webじゃんけんゲームを作ろう!(回数カウント実装)PHPTwitterFacebookはてブPocketLINEコピー2021.05.07前回コンピューター対戦まで実装した、Webじゃんけんゲームに回数のカウント機能を実装します。内部のリファクタリング(マジックナンバーを潰します)を少し行ってコードを見やすくします。前回の記事はこちらです。練習問題】Webじゃんけんゲームを作ろう!(対戦実装)前回はじゃんけんゲームの開始時のバリデーションを行いました。前回までに作成した、じゃんけんゲームに対して、コンピューターと対戦する機能を入れていきましょう。前回の記事はこちらです。回数カウントの表示箇所を実装するマジックナンバーを修正して、コードを見やすくする動作確認する終わりにこの記事の目標(作るもの)について下記のように、プレイ回数とユーザーの勝った回数のカウントを実装します。回数カウント機能を実装するコンピューターとの対戦結果を判定している箇所の下に追記していきます。game.phpに下記のように追記してみてください。-----解説まず、プレイした回数を$playCountという変数に入れるために用意しています。セッションにある場合はセッションから取得して、セッションにない場合は0から始めます。毎回この変数に1を足して、セッションに格納するようにしています。(プレイ回数が実行するたびに加算されます)次に、ユーザーが勝った回数をカウントしています。ユーザーが勝った回数をセッション($_SESSION['userWinCount'])に保持しています。毎回プレイするたびに勝った場合は+1していきます。回数カウントの表示箇所を実装するgame.phpの画面の表示している箇所を下記のように修正します。class="fs-4">n回のうち、n回勝ちました。mt-2">プレイした回数($playCount)とユーザーの勝った回数($userWinCount)の変数を表示するように修正しました。マジックナンバーを修正して、コードを見やすくする直接数値を比較している箇所があるので、修正してコードの見通しを良くしましょう。下記のようなコードは数値が何を示しているか、本人以外はわからないのでマジックナンバーと呼ばれます。2が何なのかよくわからない。定数を作って、修正していきます。下記のように、session_startを呼び出している配下に、define関数で定数を作成します。----このようにdefineで定数化しておくと、DRAWで0・COMPUTER_WINで1・USER_WINで2が返ってきます。それでは、作成した定数を使ってコードを修正します。判定箇所を修正します。下記のように数値を使っている箇所を定数に変更します。}次は、先ほど修正したユーザーの勝ったカウントの箇所も下記のように修正します。$userWinCount;}これでマジックナンバーが消えて、コードの見通しがよくなったと思います。このように、プログラムの挙動はそのままで内部的に処理を綺麗にしたりすることをリファクタリングと言います。動作確認するユーザーのプレイ回数と勝った回数が表示されるか動作確認してみましょう。`http://localhost:8080/php-rock-paper-scissors/index.php`にアクセスして、ユーザー名を入力してプレイしてみます。このように回数がカウントされることが確認できました!終わりに今回はセッションに回数を保持して、表示するようにしてみました。マジックナンバーの修正も一緒に行いました。コードが見やすくなったかと思います。マジックナンバーはコードの作成時に潰して見通しをよくしておくようにすると良いです。ログアウト機能を実装してみます。独学に限界を感じたら、オンラインで学んでみよう!本当にわからない場合は、知っている人に聞くと近道になります。・PHP/Laravelのおすすめプログラミングスクール5選!PHP/Laravelのおすすめプログラミングスクール5選!PHPやLaravelが学べるプログラミングスクールを5つ選んで比較してみました。総合的にみると、Freeksがサブスク型で始められて、就職支援まで行ってくれるので良さそうでした!PHP/Laravelが学べるプログラミングスクール5選ゲス...codelikes.com2022.10.15PHPプログラミングシェアするTwitterFacebookはてブPocketLINEコピーyasuakiをフォローするyasuakiコードライクPHPPHPで文字列を結合(連結)する4つの方法!PHPで文字列を結合(連結)する方法について書いています。.」を使う・文字列リテラルを使う・imploade関数を使う・join関数を使う(impload関数...PHPPHPで文字列を分割する5つの関数!(explodeなど)PHPで文字列を分割する方法について書いています。下記の関数を使って、文字列を分割することが可能です。・explode関数・str_split関数・mb_str_split関数・preg_split関数・mb_split関数サンプルコードは...GitGitのバージョンを確認する方法!(コマンド・GUIクライアント)使っているGitのバージョンを確認する方法について書いています。コマンドで確認する方法と、GUIクライアントで確認する方法を記載しています。GUIクライアントでの確認は、下記のクライアントアプリケーションを対象にしています。・SourceT...PHPPHPのNULLについてのまとめ!判定や空文字との違いなどPHPのNULLについてまとめました。最初にNULLについて解説していて、その後にNULLついて下記のことを書いています。・NULLの判定(比較)について・NULLと空文字の違い・NULL合体演算子についてPHPのNULLとは?PHPのNU...JavaScriptJavaScriptのbreakの使い方!(ループを抜ける)JavaScriptのbreakの使い方について書いています。breakの使い方について解説した後に、下記の内容について説明しています。・breakをラベルで使う・while文の繰り返しで使う・breakはforEachで使えるのか?・br...Python【Python入門】集合(Set)を使う方法まとめ!Pythonの集合について書いています。集合について解説した後に、下記のことを試しています。)公式サイ...swiftSwiftで数値から文字列に変換する2つの方法!Swiftで数値から文字列に変換する方法について書いています。数値から文字列に変換するにはStringを使うか、文字列に埋め込むことで変換可能です。サンプルコードは、Swiftバージョン5.7で検証しています。RouterでページのURLごとに、データを渡す方法について書いています。利用シーンとしては、ページ毎にタイトルを設定したり、パンくずのデータを渡すときなどになるかと思います。コメントをキャンセルメールアドレスが公開されることはありません。名前メールサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Δプロフィールyasuaki福岡でフリーランスをやってます。業界歴13年になりました、SESで働くことがほとんどです。なんでもやってますが、Webが得意です。このブログではプログラミング技術の内容を中心に、たまに商品レビューとかを書いています。配列のまとめ要素を追加する要素を削除する配列を結合する要素を含むか確認する要素数を数える配列の値を展開するPHP/Laravelの学習におすすめの本を選定!・PHPの学習におすすめの本6選!【現役エンジニアが選定】PHPの学習におすすめの本6選!PHPの学習におすすめの本を6つ紹介しています。Laravel・CakePHP・SymfonyなどのWebフレームワークやWordPressなどに使われているPHP。フレームワークの内部のコードや、使用されているシステムのコードを理解するた...codelikes.com2022.08.04・Laravelの学習におすすめの本3選!【現役エンジニアが選定】Laravelの学習におすすめの本3選!(本が必要?)今回はLaravelの学習にオススメの本を3つ紹介しています。学習するにあたって本が必要か考えてみました。Techpit前半はPHPのみでEvernote風メモアプリケーションを開発し、後半は同じものをLaravelで開発する。フレームワークを使用しない場合の開発と、Laravelのメリットを実際に開発することで体感。開発を通じて、簡単なアプリケーションの作り方やSQLの書き方、dockerの使用方法などを学ぶ。商品レビューゲーム食レポお問い合わせホーム検索トップサイドバータイトルとURLをコピーしました。