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

ユクサス

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

 今回の記事で、作成したコードの紹介・解説は最後になると思います。新しく紹介することは少ないかもしれませんが、もうひと踏ん張り頑張っていきましょう!

ユクサス

ラストスパートで一気に完成を目指そう!

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

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

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

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

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

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

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

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

ユクサス

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

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

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

目次

#2〜#5までのおさらい

 まずは今までの内容を軽くおさらいしていきましょう。

ユクサス

#1はEカードゲームの紹介だから省略するよ!

全体の流れ

  1. 辞書として、数字を『キー』、カードを『値』として『皇帝デッキ』と『奴隷デッキ』を作成
  2. 出されたカードを『引数』とし、勝敗を『戻り値』として返す 『関数』 の作成
  3. ゲームの流れをコード
    1. ゲームモード(対人戦・CPU戦)の選択
    2. 使用デッキ(皇帝デッキ・奴隷デッキ)の選択
    3. 勝敗が決まるまで、カードを出し続ける
    4. 勝敗が決まったら終了する

 ❶は#2で、❷は#3、❸については、#4と#5で詳しく解説しています。

ユクサス

わからないことがあったら、確認してみよう!

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

このゲームの完成

 実は、#5まででこのゲームは8割は完成しています。

ユクサス

じゃあこのゲームの完成形は一体何?

 私が設定したこのゲームの最終形は、『デッキを選べて、CPU戦と対人戦がプレイ可能』です。

 今まで紹介した内容は、CPU戦・皇帝デッキ使用の時です。ここからは今までの内容を応用して、他のパターンの場合について紹介していきます。

ユクサス

今までの内容が理解できていれば大丈夫です!

他のパターンのコード

 今まで紹介してきたパターンを含めると全部で、パターンは4通りあります。

  • CPU戦
    • プレイヤー:皇帝デッキ
    • プレイヤー:奴隷デッキ
  • 対人戦
    • プレイヤー1:皇帝デッキ   プレイヤー2:奴隷デッキ
    • プレイヤー1:奴隷デッキ   プレイヤー2:皇帝デッキ

 それぞれのパターンについて、CPU戦・皇帝デッキのコードと比較しながら紹介していきます!

ユクサス

それでは、いってみよう!

CPU戦・奴隷デッキ

 まずは、1番近い『CPU戦・奴隷デッキ』から紹介していきます!

ユクサス

まずはコードを見てみよう

CPU戦・奴隷デッキ

 今でのコードも、一緒に並べます。

CPU戦・皇帝デッキ

 上が『CPU戦・奴隷デッキ』、下が『CPU戦・皇帝デッキ』のコードです。

ユクサス

基本的に、ほとんど一緒!

 次にわかりやすいように、違う部分だけ強調します。

 この3つが『CPU戦・皇帝デッキ』と違うところです。

他のパターンでも基本的にこの辺が、パターンごとに変わっていきます!

手札の表示

 当たり前ですが使うデッキが違うので、ここの表示もちゃんと変えていきます。

ユクサス

落ち着いて、1個ずつ確認していこう!

勝敗判定・結果開示

 ここでは、関数に与える引数が異なっています。

 まずは、関数『judge』から見ていきましょう

 自作関数『judge』は、引数を二つ受け取るようにしています。

  • 第1引数  →  皇帝デッキのカード
  • 第2引数  →  奴隷デッキのカード

誰が出したカードかではなく、どちらのデッキかで勝敗を判定!


次に『open』を見ていきましょう

 自作関数『open』も引数を二つ受け取るようにしています

  • 第1引数
    • 『open』  →  プレイヤーが出したカード
    • 『open1』 →  プレイヤー1が出したカード
  • 第2引数
    • 『open』  →  コンピューターが出したカード
    • 『open1』 →  プレイヤー2が出したカード

どちらのデッキかではなく、誰が出したかで認識!

 これは完全に関数の作りかたが悪かったのですが、『judge』と『open』で引数の受け取り方が変わります。

 これをパターンに応じて、適切に引数を与えていきます。

ユクサス

関数を使うときは、どのように作ったかを確認しよう!

勝利の条件分岐

 ここでは使用するデッキによって、条件分岐の結果が変わってきます。

 関数『judge』で次のように、勝敗を戻り値として受け取るようにしています。

 デッキごとの勝利条件を確認していきましょう。

  • 皇帝デッキ  →  AとBのとき勝利
  • 奴隷デッキ  →   C のとき勝利
  •   D     →    試合継続
ユクサス

条件分岐でどのような処理をさせるかを考えよう!

 今まで出てきたことを、どのように組み合わせるかを考えていきます。

対人戦

 次に対人戦のコードについて解説していきます。

ユクサス

初めにCPU戦と大きく違うところを先に紹介するよ!

入力を隠す

 ここで、やっと出てきたのが『getpass』です。

 ライブラリの紹介で出てきたものの、今まで全く出てこなかった『getpass』が対人戦でやっと登場しました。

 私はこの『getpass』を使って、入力を隠すようにしました。

ユクサス

お互いが何を出したかわかっていたら、つまらないですからね笑

 画像のようにgetpass.getpass(prompt=)とすると、入力した文字が画面では次のように表示されます。

入力した後は、文字数もわからないように点で表示され、入力中は黒丸で表示されます。

ユクサス

これで、ゲームの公平性が保たれますね!

変数の変更

CPU戦では出したカードについて、次のように変数として設定していました。

  •  CPU戦
    • プレイヤーの出したカード  : 「player_card」
    • コンピュータの出したカード  「computer_card」

変数をそのままでももちろん実行できますが、わかりやすいように次のように変更しています。

  • 対人戦
    • プレイヤー1の出したカード  「player1_card」
    • プレイヤー2の出したカード  「player2_card」
ユクサス

後から見てもわかるようにしよう!

対人戦・プレイヤー1皇帝デッキ

ユクサス

まずはコードから!

対人戦・プレイヤー1皇帝デッキ
ユクサス

比較用に、CPU戦・皇帝デッキのコードも貼ります

CPU戦・皇帝デッキ

違うところが増えましたが、ゲームの流れは一緒です。

 新しく紹介することは少ないですが、1番重要な引数のところだけ取り上げようと思います。

引数

 先ほど説明した通り、関数によって引数の受け取り方が違うので、そこに気をつけてコーディングする必要があります。

 今回の場合は、次のようになります。

  • judge
    • 第1引数プレイヤー1のカード(皇帝デッキ)
    • 第2引数プレイヤー2のカード(奴隷デッキ)
  • open
    • 第1引数プレイヤー1のカード
    • 第2引数プレイヤー2のカード
ユクサス

しっかり確認しながら進もう!

対人戦・プレイヤー1奴隷デッキ

ユクサス

やっぱりまずは、コードから!

対人戦・プレイヤー1奴隷デッキ
ユクサス

比較用のコードも!

CPU戦・皇帝デッキ

 ここまでくればもう説明なしでもわかるかもしれませんが、念の為引数についてだけ解説していきます!

引数

 今回の場合は次のようになります。

  • judge
    • 第1引数プレイヤー2のカード(皇帝デッキ)
    • 第2引数プレイヤー1のカード(奴隷デッキ)
  • open
    • 第1引数プレイヤー1のカード
    • 第2引数プレイヤー2のカード

 色をつけたところが、先ほどと違う部分になります。

ユクサス

最後の最後でミスしないように気をつけよう!

ユクサス

そして、ここまで完成すれば…

Congratulation!

おめでとうございます!

 これで、Eカードゲームの完成です!もう説明することは全部終わりました!

ユクサス

おめでとう!そして、お疲れ様!

 全てのコードを見せたわけではないですが、ここまでくればもう自力で完成できます!

ユクサス

何度見返しても大丈夫!
完成させてみよう!

 ぜひ友達や家族と『僕が・私が作ったゲームだよ』っと言ってプレイしてみて欲しいです!

さいごに

 一緒にコードを作ってくれた方、本当にありがとうございます。そして、お疲れ様です。

 このシリーズでは、全6回で私が作ったみたEカードゲームについて詳しく紹介してきました。

ユクサス

もちろん、コードの見本はないです…

 それでも…、たとえ時間がかかっても、初心者でも簡単なゲームは作れるよ!っていうのを伝えたくてこのシリーズを始めました。

ユクサス

このシリーズが沢山のプログラミング初心者に届くことを祈ってます 

 解説は今回で全て終わりましたが、次回は勉強して知識が増えた今、その知識を活かして改めてこのゲームをコーディングして、

 それの紹介とこのシリーズで伝えたいことを改めてまとめて、最終回としようと思います!

 何か分からないことや、質問があればコメントなどで気軽にどうぞ。

ユクサス

では、また次の記事で!

 ユクサスのアカウントで BlogMap も登録してます!記事を読んで、気に入っていただけたら「購読通知」と「いいね」をポチってもらえると、嬉しいです!ぜひ、お気軽にどうぞ!

BlogMapのページはこちらから⇨https://blogmap.jp/details/4997

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

コメント

コメントする

CAPTCHA


目次
閉じる