プログラミングのステップの1つでゲームを作ってみようというのがありますよね。
私も本業はインフラエンジニアの身ですが、 pythonは2年ほど触っていますのでそろそろこちらにも挑戦しようと思います。
これまで一枚岩のコードはいくつか書いてきましたが、
自身初となる自作関数、インタラクティブ処理の練習にもなりますからね。
何を作るか
入門かどうかは置いておいて「python ゲーム」とかで検索すると以下が多く出てきます。
- スネークゲーム(pythonだけにってか)
- トランプ系ゲーム
- ブラックジャック
- ポーカー
- ゴリゴリのGUIモジュール使用系
- pygame
- pyxel
- テキストアドベンチャー系
- 「Learn Python Hardway」という本で作成する章があります
この中で以下の条件で進められるように考えます。
- CLIから始められるもの
- コンソールで理解できるトランプ系かテキスト系になりますね
- ルールが簡単なもの
- これは単純に複雑さがコーディング量に比例します(と思います)
そんなわけで私の挑戦するゲームを決めました。
スリーカードポーカーです!
スリーカードポーカーとは
ルールは普通のポーカーと同じように52枚のカードから手役を構築しますが、
- 3枚のカードでポーカーを行う
- 対戦はディーラーと1対1
というものになります。
スリーカードポーカーにした理由ですが、
- 誰も作成していない
- 需要が無いからかも
- 5枚ポーカーよりは作成が簡単そう
- 手役のバリエーションは当然少ないです
- GTAオンラインでハマっている
からです。
もともとはGTAオンラインのミニゲームで出てきて興味を持ったんですが、
検索しても公式ルールとかが出てこないんですよね。
オンラインカジノ系のサイトではちゃんとルール記載があってプレイできるようなので、
ポーカーの一種として存在はしているのでしょうが謎ですね。
とりあえずこちらの作成を目標にしたいと思います。
ブラックジャックは意外と作成記が出てくるし、
ホールデムやビデオポーカーの類のものは処理がすごく大変そうなので
スリーカードポーカーを初のゲームに選定しました。
GW中の課題としてある程度のものはできたらいいですが…
役判定のところが鬼門そうですね。
ちなみにGTAオンライン
GTAオンラインのスリーカードポーカーはカジノアップデートからできるようになりました。
ポーカーの醍醐味である他プレイヤーとの駆け引きの要素は無いのですが、シンプルながらなかなかどうしてハマります。
一人称視点だと本当にカジノでやっている気分が味わえます。
GTAオンラインでやればいいじゃんて話ですが、ゲーム開始時のロードがすごく長いのでお手軽に遊べる環境が欲しいのも作成理由の1つです。