PythonのTkinterを使ってサイコロを転がすゲームを作る

スポンサーリンク

Pythonのtkinterライブラリを使ってサイコロを振るシミュレーションのコードを作ってみましょう。

ヘビとハシゴやルードなど、ボードゲームはみんな大好きですよね。

しかし、サイコロがなかったり、どこかに落としてしまったりしたらどうでしょう。

せっかく盛り上がっていたのに、これでは台無しです。


スポンサーリンク

PythonでTkinterライブラリを使ったサイコロの描き方

Pythonはグラフィカルユーザーインターフェースを設計するための様々なパッケージを提供しています。

TkinterはGUIアプリケーションを構築するために使用される最も一般的で、一般的で、高速で、使いやすいPythonパッケージです。

Tkinterは強力なオブジェクト指向インターフェイスを提供し、簡単に使用できます。

また、アプリケーションを開発すると、どのプラットフォームでも使用できるため、Windows、Mac、Linuxでアプリケーションを使用するために必要な修正の必要性を減らすことができます。

このフレームワークは、Tkツールキットに含まれるウィジェットを使用してGUI要素を作成する簡単な方法をPythonユーザに提供します。

Tkウィジェットは、Pythonアプリケーションのボタン、メニュー、データフィールドなどを構築するために使用されます。

サイコロを振るシミュレーションプログラムを正常に実行し、GUIを構築するためには、Pythonのtkinterライブラリをインポートする必要があります。

もしまだインストールされていない場合は、pipパッケージマネージャを使用してインストールしてください。

pip install tk

Pythonでサイコロの出目シミュレーションをコーディングする

以下は、このプログラムの完全なコードです。

以下、各セクションを分解して、コードの理解を深めていきましょう。

#import the required libraries
#tkinter library to create GUI
#random library because we're randomly selecting numbers
from tkinter import *
import random
 
#create tkinter instance
root=Tk()
#define geometry
root.geometry("400x400")
 
#GUI will have two basic components
#1.Button which will trigger the rolling of dice
#2.Dice label
l1=Label(root,font=("Helvetica",260))
 
def roll():
    #create a number variable in which the list of all the ASCII characters of the string will be stored
    #Use backslash because unicode must have a backslash
    dice=['u2680','u2681','u2682','u2683','u2684','u2685']
    #configure the label
    l1.config(text=f'{random.choice(dice)}{random.choice(dice)}')
    l1.pack()
     
b1=Button(root,text="Roll the Dice!",foreground='blue',command=roll)
b1.place(x=300,y=0)
b1.pack()
 
root.mainloop()

Understanding the Code

#import the required libraries
#tkinter library to create GUI
#random library because we're randomly selecting numbers
from tkinter import *
import random

まず、Pythonで必要なライブラリをインポートします。

randomモジュールにアクセスするために、プログラムの先頭に from random import * を追加します。

from Tkinter import *` は Tkinter で公開されているすべてのオブジェクトを現在のネームスペースにインポートします。

#create tkinter instance
root=Tk()
#define geometry
root.geometry("400x400")
  • root = Tk( ) : ルートウィンドウが作成されます。ルートウィンドウは、プログラムにおけるメインのアプリケーションウィンドウです。タイトルバーとボーダーを持ちます。これらはウィンドウ・マネージャによって提供されます。他のウィジェットの前に作成する必要があります。
  • root.geometry(“400×400”) : geometry` メソッドはウィンドウのサイズを設定し、画面上に配置します。2つのパラメータはウィンドウの幅と高さです。
def roll():
    #unicodes must have a backslash
    dice=['u2680','u2681','u2682','u2683','u2684','u2685']
    l1.config(text=f'{random.choice(dice)}{random.choice(dice)}')
    l1.pack()

サイコロを振るシミュレーションを行うために、関数roll( )を定義します。

サイコロ変数を作成し、その中に文字列のすべてのASCII文字のリストを格納します。

そして、ラベルをcongifします。

choices()` メソッドは、指定された配列の中からランダムに選択された要素を含むリストを返します。

l1.pack( ) はジオメトリマネージャで、親ウィジェットに配置する前にウィジェットをブロック単位で整理します。

root.mainloop()です。

いよいよmainloopに入ります。

イベント処理は、この時点から始まります。

メインループは、ウィンドウシステムからイベントを受け取り、アプリケーションウィジェットにディスパッチします。

タイトルバーのクローズボタンがクリックされると終了します。

Result

Fake tag
Fake tag

まとめ

サイコロを振るシミュレーションアプリを一緒に作ってみて、楽しんでいただけたでしょうか。

これからもPythonをよろしくお願いします。

タイトルとURLをコピーしました