4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

#概要
プログラミングの練習のため、Pythonでゲームを作成してみました。
使用したライブラリは"pygame"です。

ライブラリの基本的な使い方は、以下を参考に作成しました。
Pygame - Pygameドキュメント 日本語訳

画面の作成・描画・制御、キーボード、マウスの入出力など、基本的な機能は詰まっています。

#作成したゲーム
「COOL104」という昔からゲームセンターにあるゲーム…の基本部分のみ。
game.png

#ルール
手札から、台札(画面上段のカード)と「マーク」か「数字」が同じカードをなるべく長く出していく、という単純なゲームです。

画面右側中段に、カードの使用状況(今出ている、まだ出ていない、もう出た)が表示されるので、どのカードが出る確率が高いかを考えつつ、終盤は全部出せるようにつながりを考えてカードを選択していきます。

詳細なルールは以下の外部サイトを参照ください。
COOL104ルール

本物は、手札がポーカーの役になると点数が加算され、、、などのルールがあるのですが、この点は実装しませんでした。

#ソース
github

動作確認のためのコメントが入っていますが、ご了承ください。

#考慮点
1つ目は開始時の手札の払い出しです。
手札カードをランダムに作成すると、最初からゲームオーバー(出せる手札がない)になる可能性があるので、ゲーム開始時には2枚以上手札カードが出せるようにしています。

もう1点は画面の描画回数です。
今回のアプリは、無限ループして画面を描画し、マウスのクリックイベントを待っています。回数が多いと、1クリックしたつもりが、次の画面描写でもクリックイベントを拾ってしまう、、、という事象がおきました。
そのため、1秒間に何回画面描写するかの設定をアナログ(設定を変えて感覚)で設定しました。

#参考

Pythonを勉強するにあたっては以下の書籍を参考にしました。

ゲームを作りながら楽しく学べるPythonプログラミング

#作ってみて思ったこと
ゲームオーバー後、いちいち画面を閉じて再度コマンド実行する必要があり、面倒。
上位にあたる画面を作成して呼び出しをしてあげたほうがよかったのかも、、と思いました。

とはいえ、初めてUIがあるものを作りましたが、ちゃんと動いてびっくりしました。

#謝辞
汪さん、色々と相談にのっていただきまして、ありがとうございました。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?