魚へんの漢字クイズ



講師から一言
魚へんの漢字をあてるクイズです。いろんな魚の画像を探してくるのが大変だったと思います。GUIを備えたプログラムを作るときに苦労するのが素材集めだと思います。if文をたくさん書いてくれていますが、問題文そのものをリストに入れて取り出せるロジックが使えるようになれば、書くコードの行数もへり、シンプルになります。ぜひ、チャレンジしてみてください。

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

root=tkinter.Tk()
root.title("魚編の漢字クイズ")
root.minsize(800,550)
root.option_add("*font",("メイリオ",50))
    
#画像
背景=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")
ナマズ=tkinter.PhotoImage(file="image\ナマズ.png")
マグロ=tkinter.PhotoImage(file="image\マグロ.png")

#キャンバス作成、背景
canvas=tkinter.Canvas(width=800,height=550)
canvas.place(x=0,y=0)
canvas.create_image(400,275,image=背景)

#問題文ラベル
risuto=["鯏","鯆","鰻","鱏","蝦","鰈","鱪","蛸","鯰","鮪"]
kannzi=random.choice(risuto)

mozi=tkinter.Label(root,text=kannzi,font=("system",500))
mozi.place(x=325,y=180)


monndai=tkinter.Label(root,text="この漢字の読み方は?\n(ひらがなで書いてください)",font=("system",40))
monndai.place(x=20,y=20)

def ask_click():
    global kannzi
    kaitou=(entry.get())
    if kannzi=="鯏":
        if kaitou=="あさり":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「あさり」"
        canvas.create_image(400,390,image=アサリ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="鯆":
        if kaitou=="いるか":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「いるか」"
        canvas.create_image(400,390,image=イルカ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="鰻":
        if kaitou=="うなぎ":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「うなぎ」"
        canvas.create_image(400,390,image=ウナギ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="鱏":
        if kaitou=="えい":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「えい」"
        canvas.create_image(400,390,image=エイ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="蝦":
        if kaitou=="えび":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「えび」"
        canvas.create_image(400,390,image=エビ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="鰈":
        if kaitou=="かれい":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「かれい」"
        canvas.create_image(400,390,image=カレイ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="鱪":
        if kaitou=="しいら":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「しいら」"
        canvas.create_image(400,390,image=シイラ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="蛸":
        if kaitou=="たこ":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「たこ」"
        canvas.create_image(400,390,image=タコ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="鯰":
        if kaitou=="なまず":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「なまず」"
        canvas.create_image(400,390,image=ナマズ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)
    if kannzi=="鮪":
        if kaitou=="まぐろ":
            monndai.place(x=310,y=20)
            monndai["text"]="正解!"
        else:
            monndai.place(x=80,y=20)
            monndai["text"]="不正解!正解は「まぐろ」"
        canvas.create_image(400,390,image=マグロ)
        entry.place(x=10000,y=180)
        ask.place(x=10000,y=180)
        mozi.place(x=325,y=100)


#回答欄
entry=tkinter.Entry(width=7,bd=4)
entry.place(x=240,y=400)
ask=tkinter.Button(text="決定",font=("system",50),command=ask_click)
ask.place(x=520,y=400)

#メインループ
root.mainloop()