🐱
PySimpleGUIでじゃんけんアプリをGUI化してみた
PySimpleGUIでじゃんけんアプリをイチから作ります
Python初学者が、最初のころに作るものといえば、じゃんけんゲームがあると思います。
それを、PySimpleGUIを使ってGUI化してみよう!という内容です。
中身的には、じゃんけんアプリの中身が50行、GUI化の記述が50行といった感じです。
以下、使用するライブラリです。
PySimpleGUI
アプリをGUI化するために使用
レイアウトをPythonリストで記述するため、まさにSimple!!
PySimpleGUIってなんだ?という方はこちらの記事もどうぞ
numpy
CPUのじゃんけんの手を決める時にランダム整数を生成するため
Pyinstaller
アプリをデスクトップアプリ化するため
成果物
完成イメージはこちら
上で、グー、チョキ、パーをラジオボタンから選択して、対戦ボタンをクリックすると、CPUの手、自分の手、対戦結果が表示されるというごくごく簡単なもの
たった100行程度で記述されているんですが、PySimpleGUIを使う上で必要な要素がたくさん入っていて、PySimpleGUI初学者にとってうってつけと思います。
動画では、まずじゃんけんゲームの実装をイチから行い、その後でGUI化するための手直しをする様子を紹介しているので、ぜひ一度見ていってください。
きっと、あなたもPythonのGUI化ができるようになります!
YouTube 解説動画
最終コード
手っ取り早く、中身を見たい方用
じゃんけんゲームの実装はもっとスマートに書けそうですね...
import numpy as np
import PySimpleGUI as sg
def judgement(your_num, cpu_num):
if your_num == 0:
if cpu_num == 0:
# print("あいこです")
result ="あいこです"
elif cpu_num == 1:
result ="あなたの勝ちです"
elif cpu_num == 2:
result ="あなたの負けです"
if your_num == 1:
if cpu_num == 1:
result ="あいこです"
elif cpu_num == 2:
result ="あなたの勝ちです"
elif cpu_num == 0:
result ="あなたの負けです"
if your_num == 2:
if cpu_num == 2:
result ="あいこです"
elif cpu_num == 0:
result ="あなたの勝ちです"
elif cpu_num == 1:
result ="あなたの負けです"
return result
font = ("meiryo", 16)
size = (10,2)
size_result = (20,2)
layout = [
[sg.Radio("グー", font=font, size=size, group_id = "choice", key="gu"),
sg.Radio("チョキ", font=font, size=size, group_id = "choice", key="choki"),
sg.Radio("パー", font=font, size=size, group_id = "choice", key="pa")],
[sg.Button("対戦", font=font, size=size, key="judge")],
[sg.Text("CPU:", font=font, size=size), sg.Text("", size=size_result, font=font, key = "CPU")],
[sg.Text("あなた:", font=font, size=size), sg.Text("", size=size_result, font=font, key = "YOU")],
[sg.Text("対戦結果:", font=font, size=size), sg.Text("", size=size_result, font=font, key = "result")]
]
window = sg.Window("janken app", layout)
while True:
event, values = window.read()
if event is None:
break
if event == "judge":
# 対応リスト
choice = {0: "グー", 1: "チョキ", 2: "パー"}
# あなたの手
if values["gu"] == True:
your_num = 0
if values["choki"] == True:
your_num = 1
if values["pa"] == True:
your_num = 2
# CPUの手
cpu_num = np.random.randint(0, 3)
result = judgement(your_num, cpu_num)
window["CPU"].update(choice[cpu_num])
window["YOU"].update(choice[your_num])
window["result"].update(result)
window.close()
PySimpleGUIをさらに詳しく!
Discussion