LoginSignup
4
7

More than 1 year has passed since last update.

PythonのTkinterでじゃんけんゲームを作ってみた

Posted at

ゲームのソースコード

ゲームのプロジェクトは以下のリポジトリになっています。
初めてPythonでGUIを作った、無理矢理クラスやファイルを分けた、コメントが少なかったりと改良の余地はかなりある物となっていますので一から作り直すかもしれないです。

ゲームの内容

ゲームとしては、以下の内容となっています。

  1. プレイヤーとエネミーに分かれてじゃんけんをする
  2. プレイヤーはグー、チョキ、パーのボタンを用意してそこから選択してもらう
  3. エネミーはランダムで決められた手を出してくる。
  4. 負けた方は、基本1 ~ 3の間でHPが減っていく。
  5. 10分の1の確率でクリティカルヒットが発生して基本ダメージが5倍のダメージとなる
  6. 先にHPが0以下になった物の勝利
    Janken.png
    Janken2.png

ゲームを作った理由

今回Pythonで作ろうと思った理由はいくつかあります。

  • 理由その1
    私の勉強方法といいますか復習のひとつとして過去に作ったものを、今の能力技術で作るというのを定期的に行っています。
    そこで今回は、以前C#のWinFormsで作った事のあるじゃんけんゲームをPythonでやってみようと思いました。

  • 理由その2
    今回、弊社で新人エンジニアを集めてワークショップをやろうという話があり、そのコンテンツの一部としてサンプルとなる物を用意する必要があったというのも理由です。

ゲームを作るにあたっての反省点

ゲームの仕様として、ログをGUI上に書き込む様にしてます。
ログが書き込まれるという事は、最新のログの内容が常にGUI上に表示されているのが理想的です。
その方法が判らず困ってしまいました。
結局以下の様にすると良かったのですが、コメントが少なかったりしたせいで自分の頭の中のコードと実際のコードで差違が出ており調べ方を間違えてしまい時間がかかってしまったのが反省しなくてはいけない所です。

コメントが少ないという事もそうですが、自分で書いたコードを理解、把握出来てないとはあってはならないと思います。

結局先輩に質問してたった一行追加するだけという数分で解決してしまいました。
以下が追加したコードです。

from tkinter Text
tk = Tk()
# ログテキストの設定
self.log_message: Text = Text(tk, state=Const.NORMAL)
self.log_message.see('end')

改良点

改良点としては、ログは現状一度GUIアプリ自体を閉じないと消えないので、ゲームが新しくスタートする時には削除する様にしようと思ってます。
オプションとかで切り替え出来ても面白いかなと思ってます。
また、このアプリにHPが削れてる音やエネミー側のグー、チョキ、パーの音声などのBGMを追加しようかなとも考えてます。

4
7
1

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
7