【ゲーム制作】勉強始めて約3週間の初心者がEカードゲーム作ってみた #7(終)

ユクサス

こんにちは、ユクサスです!

 今回でこのシリーズの最終回です!

 ゲーム自体は前回の記事で完成させることができます。ですが、勉強を始めて約3ヶ月たったいまの知識を使って改めてコードを書き直しました。

 今回はそれの解説とこのシリーズで伝えたいことを書き留めようと思います。

ユクサス

ぜひ、最後までお付き合いください!

 この関連記事紹介も最後になります…

ユクサス

なんだか感慨深いものがあります…

↓【ゲーム制作】勉強始めて約3週間の初心者がEカードゲーム作ってみた まとめはこちらから

あわせて読みたい
【ゲーム制作】勉強始めて約3週間の初心者がEカードゲーム作ってみた まとめ こんにちは、ユクサスです!  このページは、【ゲーム制作】勉強始めて約3週間の初心者がEカードゲーム作ってみた のまとめページです。  このシリーズもそこそこの回...

 前回と同じく、使用言語は『Python』で、『Google Colaboratory』でコードの作成・実行しました。それぞれに関する記事も書いてるのでよろしければどうぞ!

↓使用したプログラミング言語『Python』についてはこちら

あわせて読みたい
Pythonって何?初心者目線でPythonでできることを紹介! こんにちは、ユクサスです! いざ、「プログラミングを始めよう!」、と思っても一体何から始めればいいか悩んでいませんか? プログラミングを始めるのに、最初に決め...

↓コードを書くのに使用した環境『Google Colaboratory』はこちら

あわせて読みたい
【初心者必見!】グーグルコラボラトリーのメリットと使い方まで紹介しちゃいます! こんにちは、ユクサスです!  前々回の記事、初心者ブロガーの初級プログラミング#3では、Progateレッスン3で習った内容について書きました。そしてレッスン3の最後で...

↓このゲームを作るまでに学習した内容はこちら

ユクサス

3週間もあれば余裕で習得できるよ!笑

あわせて読みたい
初心者ブロガーの初級プログラミングシリーズ まとめ このページは、『初心者ブロガーの初級プログラミング』シリーズのまとめページです!  今はまだ記事数が少ないですが、後々記事が多くなった時のために先にまとめペー...
ユクサス

それでは、いきましょう!

目次

改めて作ったコード

 基本的な作りとゲーム流れは今までと同じです。

ユクサス

新しく用意したものと改変したところを中心に解説していきます

新しく設定した初期値

まずは、コードを見ていきます。

 今回は、新たに4つの初期値を設定しました。

ユクサス

赤い枠で囲まれた部分です

カードの種類を表すリスト

 このリストでは、カードの役職を表しています。

 これを新たに設定することで、#5で紹介した悲劇を回避できます!

ユクサス

意外と簡単に回避することができました。

プレイヤーの出したカードを保存するリスト

 これは、初期値として最初に空のリストを生成し、後にプレイヤーの出したカードを保存します。

  •  player_card はコンピュータ戦でのプレイヤーの出したカード
  •  player1_card は対人戦プレイヤー1の出したカード
  •  player2_card は対人戦プレイヤー2の出したカード

新しく設定した関数

 勝敗を判定する関数だけ新しくしました。

 前回までのjudge関数はこちら。

 新しく設定したリストを使い、よりコンパクトでわかりやすくしました。

 前回まで

  • 番号で設定したカード毎に場合分け

⬇︎

 今回から

  • カードの種類毎に場合分け

 新しく設定することで、単にコンパクトになっただけではありません!

ユクサス

実は、これによって#5で紹介した悲劇も回避できるようになりました!

悲劇の回避

 まず、悲劇について改めて紹介します。

  1. 各回で出したカードを辞書から削除する
  2. 辞書が削除されたことにより、judge関数がうまく働かない
  3. 2回戦以降にエラー表示が出てるようになる
  4. 解決方法は各回の最後にカードを消去し、次の回の最初の辞書の表示の後に消したカードを再び辞書に戻す

 簡単にまとめるとこんな感じです。

ユクサス

このエラーで私は何日も悩まされ、心が折れそうになりました

 この悲劇の1番の原因は、judge関数が番号で設定したカード毎に場合分けしていたことです。

 そもそも勝敗は3つの役職の組み合わせで判定するのに、なぜが辞書のカード毎に場合分けしていました。

ユクサス

今考えたら当たり前のことでした
でも、当時は全く気づかなかった…

 しかし、今回からのjudge関数だとカードの種類で判定します。

 なので、辞書から消去してもしっかり判定することができます!

ゲームの流れのコード

 最後にゲーム流れのコードを紹介します。

 基本的には同じですが、ここが1番変わったところかもしれません。

今まで

  • 各回毎にコーディング 

⬇︎

  • その結果コードの行数がすごいことに…

今回から

  • 各回の基本的なコードは同じ

⬇︎

  • 繰り返し処理でコードを短縮

 繰り返し処理を使うことにより、コードが圧倒的にコンパクトで見やすくなりました!

ユクサス

それでは、コードを見ていきましょう!

コンピュータ戦のコード

 まず、コンピュータ戦の皇帝デッキ使用時のコードから解説していきます。

ユクサス

繰り返しには、while文を使いました。

 まず最初に turn という変数を1で設定します。この変数は名前の通りターン数を表しています。

 また、プレイヤーの出したカードは最初に紹介した player_card というリストに保存してきます。

 そして、最後にjudge関数の結果によって場合分けしていきます。

  • 勝敗が決定した時

どちらが勝ったかを表示しループを止める

  • 勝敗が決まらない時

辞書から出したカードを消去し、turn をプラス1して次のループへ

ユクサス

たったこれだけで、今までの処理と同じことができます!

 使用したデッキが違うときは、今までと同じように一部を変えるだけです!

対人戦のコード

 ここでは、プレイヤー1が皇帝デッキに時について解説していきます。

 基本的に変わったところは、コンピュータ戦と同じです。

 ただ、プレイヤー1が出したカードを player1_card に、プレイヤー2が出したカードを player2_card に入れるのを舞い違えないようにしましょう。

ユクサス

最後に辞書からの消すのも忘れずに!

改めてコードを作って

 以上でコードの解説はおしまいです。

 一緒にコードを作ってくれた方は今回のコードを作ってたら、そのコンパクトさに驚くと思います。

ユクサス

今までのが酷すぎましたから…

 それでも、このゲームの解説は終わりです。本当にお疲れ様です。

 最後にこのシリーズで伝えたいことをまとめますので、どうぞ見ていってください!

このシリーズで伝えたいこと

 このシリーズは、「初心者でもこういうことができる!」・「大変だけど自分でコーディングするのは楽しい!」というのを特にプログラミング初心者さんに伝えたくて始めました。

 これを伝えるために、解説は細く丁寧にやってきたつもりです。

ユクサス

うまく説明できたかな…

 もし、何かありましたらコメントしていただけると嬉しいです。

 プログラミングは難しいと言われるように、どんなに頑張ってもうまく進まないってこともあると思います。

 ひどいときは、何日か経ってやっとわかるということもあります。

ユクサス

特に初心者さんは多いと思います
というより、私がそうです…

 そうして心が折れてしまう前に、息抜きにでもこのシリーズでゲームを作って『プログラミングの楽しさ』を実感できてば幸いです。

 今はまだこの記事だけですが、ゲーム制作の記事は今後もいろいろ書いていく予定です。

 何か「こういうゲームを作ってほしい」などありましたら、リクエストお待ちしてます。

さいごに

 最後にもう一度、一緒にゲームを作ってくれたは本当にお疲れ様です。そして、ありがとうございます。

 そしてここまで作れれば、もう立派なプログラマーです!

 これからも、みなさんと一緒に楽しんでプログラミングを勉強できる記事づくりに励みます。

ユクサス

何事も楽しむのがモットー

 これからもどうぞよろしくお願いします。

ユクサス

では、また別の記事で!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次
閉じる