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でTkinterを使ってGUIの電卓アプリを作成する方法
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をよろしくお願いします。