Help us understand the problem. What is going on with this article?

ゲーム作りに挑戦!

概要

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

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

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

作成したゲーム

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

ルール

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

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

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

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

ソース

github

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

考慮点

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

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

参考

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

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

作ってみて思ったこと

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

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

謝辞

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした