クマのコーデ

講師から一言
tkinterのチェックボックスの使い方が絶妙に面白いです!チェックボックスだけでゲームぽっく仕上がっている点を評価します。ネコ診断プログラムの理解度確認テストに正式に採用させてもらいました。チェックボックスにもcommand命令が使えることを知らない人が意外と多いと思います。command命令はボタン以外にも使える例として使わせて頂きます。

Pythonで記述したコード
import tkinter
import pygame

#関数定義
def シャツ_着る():
    着替え.play()
    if ブール_シャツ.get()==True:
        キャンバス.create_image(198,325,image =シャツ,tag="Tシャツ")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはシャツを着た")
    else:
        キャンバス.delete("Tシャツ")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはシャツを脱いだ")

def ズボン_はく():
    着替え.play()
    if ブール_ズボン.get()==True:
        キャンバス.create_image(198,350,image =ズボン,tag="ズボン")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはズボンをはいた")
    else:
        キャンバス.delete("ズボン")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはズボンを脱いだ")
        
def メガネ_かける():
    着替え.play()
    if ブール_メガネ.get()==True:
        キャンバス.create_image(200,283,image =メガネ,tag="メガネ")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはメガネをかけた")        
    else:
        キャンバス.delete("メガネ")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはメガネをとった")

def リボン_つける():
    着替え.play()
    if ブール_リボン.get()==True:
        キャンバス.create_image(233,246,image =リボン,tag="リボン")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはリボンをつけた")
    else:
        キャンバス.delete("リボン")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはリボンをとった")

def ニット_着る():
    着替え.play()
    if ブール_ニット.get()==True:
        キャンバス.create_image(198,322,image =ニット,tag="ニット")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはニットを着た")
    else:
        キャンバス.delete("ニット")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはニットを脱いだ")

def スカート_はく():
    着替え.play()
    if ブール_スカート.get()==True:
        キャンバス.create_image(197,348,image =スカート,tag="スカート")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはスカートをはいた")
    else:
        キャンバス.delete("スカート")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはスカートを脱いだ")

def サングラス_かける():
    着替え.play()
    if ブール_サングラス.get()==True:
        キャンバス.create_image(200,283,image =サングラス,tag="サングラス")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはサングラスをかけた")
    else:
        キャンバス.delete("サングラス")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはサングラスをはずした")

def リボン2_つける():
    着替え.play()
    if ブール_リボン2.get()==True:
        キャンバス.create_image(168,246,image =リボン2,tag="リボン2")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはリボンをつけた")
    else:
        キャンバス.delete("リボン2")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはリボンをはずした")

def ワンピース_着る():
    着替え.play()
    if ブール_ワンピース.get()==True:
        キャンバス.create_image(198,333,image =ワンピース,tag="ワンピース")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはワンピースを着た")
    else:
        キャンバス.delete("ワンピース")
        テキストエリア.delete("1.0",tkinter.END)
        テキストエリア.insert("1.0","【クマのコーデ】\nクマはワンピースを脱いだ")

#ウィンドウ作成
ウィンドウ = tkinter.Tk()
ウィンドウ.title("着せ替え")
ウィンドウ.resizable(False,False)

#キャンバス作成
キャンバス = tkinter.Canvas(ウィンドウ,width = 800,height = 600)
キャンバス.pack()

#画像アップロード
背景 = tkinter.PhotoImage(file = "image\背景.png")
クマ = tkinter.PhotoImage(file = "image\クマ.png")
シャツ = tkinter.PhotoImage(file = "image\シャツ.png")
ズボン= tkinter.PhotoImage(file = "image\ズボン.png")
メガネ= tkinter.PhotoImage(file = "image\メガネ.png")
リボン= tkinter.PhotoImage(file = "image\リボン.png")
ニット= tkinter.PhotoImage(file = "image\ニット.png")
スカート= tkinter.PhotoImage(file = "image\スカート.png")
サングラス= tkinter.PhotoImage(file = "image\サングラス.png")
リボン2= tkinter.PhotoImage(file = "image\リボン2.png")
ワンピース= tkinter.PhotoImage(file = "image\ワンピース.png")

#効果音
pygame.init()
pygame.mixer.init()
BGM=pygame.mixer.Sound("sound\BGM.wav")
着替え=pygame.mixer.Sound("sound\着替え.wav")

#画像配置
キャンバス.create_image(400, 300,image =背景)
キャンバス.create_image(200, 300,image =クマ)
キャンバス.create_image(250, 425,image =シャツ)
キャンバス.create_image(350, 425,image =ズボン)
キャンバス.create_image(340, 185,image =メガネ)
キャンバス.create_image(50, 335,image =リボン)
キャンバス.create_image(590,215,image =ニット)
キャンバス.create_image(380,525,image =スカート)
キャンバス.create_image(125,185,image =サングラス)
キャンバス.create_image(400,180,image =リボン2)
キャンバス.create_image(250,525,image =ワンピース)

#BGM
BGM.play(-1)

#チェックボックス作成
ブール_シャツ=tkinter.BooleanVar()
チェック_シャツ=tkinter.Checkbutton(text="シャツ",bg="pink",variable=ブール_シャツ
                             ,command=シャツ_着る,font=("BIZ UDPゴシック",14))
チェック_シャツ.place(x=220,y=450)

ブール_ズボン=tkinter.BooleanVar()
チェック_ズボン=tkinter.Checkbutton(text="ズボン",bg="pink",variable=ブール_ズボン
                             ,command=ズボン_はく,font=("BIZ UDPゴシック",14))
チェック_ズボン.place(x=320,y=450)

ブール_メガネ=tkinter.BooleanVar()
チェック_メガネ=tkinter.Checkbutton(text="メガネ",bg="green",variable=ブール_メガネ
                             ,command=メガネ_かける,font=("BIZ UDPゴシック",14))
チェック_メガネ.place(x=300,y=195)

ブール_リボン=tkinter.BooleanVar()
チェック_リボン=tkinter.Checkbutton(text="リボン",bg="pink",variable=ブール_リボン
                             ,command=リボン_つける,font=("BIZ UDPゴシック",14))
チェック_リボン.place(x=10,y=395)

ブール_ニット=tkinter.BooleanVar()
チェック_ニット=tkinter.Checkbutton(text="ニット",bg="#ed6d3d",variable=ブール_ニット
                             ,command=ニット_着る,font=("BIZ UDPゴシック",14))
チェック_ニット.place(x=560,y=235)

ブール_スカート=tkinter.BooleanVar()
チェック_スカート=tkinter.Checkbutton(text="スカート",bg="pink",variable=ブール_スカート
                             ,command=スカート_はく,font=("BIZ UDPゴシック",14))
チェック_スカート.place(x=340,y=550)

ブール_サングラス=tkinter.BooleanVar()
チェック_サングラス=tkinter.Checkbutton(text="サングラス",bg="#66cdaa",variable=ブール_サングラス
                             ,command=サングラス_かける,font=("BIZ UDPゴシック",14))
チェック_サングラス.place(x=150,y=172)

ブール_リボン2=tkinter.BooleanVar()
チェック_リボン2=tkinter.Checkbutton(text="リボン",bg="#cccc66",variable=ブール_リボン2
                             ,command=リボン2_つける,font=("BIZ UDPゴシック",14))
チェック_リボン2.place(x=420,y=168)

ブール_ワンピース=tkinter.BooleanVar()
チェック_ワンピース=tkinter.Checkbutton(text="ワンピース",bg="pink",variable=ブール_ワンピース
                             ,command=ワンピース_着る,font=("BIZ UDPゴシック",14))
チェック_ワンピース.place(x=210,y=550)

#テキストエリア
テキストエリア= tkinter.Text(width=15,height=3,font=("BIZ UDPゴシック",14))
テキストエリア.place(x=570,y=480)
テキストエリア.insert("1.0","【クマのコーデ】\n今日は何を着ようかな?")

ウィンドウ.mainloop()