スタンプカード

講師から一言
tkinter のイベント処理と画像管理を正しく理解した上で構成された良い実装です。
mouse_click を用いた座標判定、PhotoImage と Button の組み合わせ、tag によるスタンプ削除など、GUIプログラミングの基本をしっかり押さえています。
特に、ユーザー操作に応じて
「内部状態の更新 → Canvas 反映」
を適切に行える構造は評価ポイントです。
今後は画像選択処理の共通化などでさらに洗練できますが、現段階としては非常に完成度の高いコードです。



Pythonで記述したコード
import tkinter
x=0
y=0
フラグ=False
画像=0
def mouse_click(e):
    global フラグ,x,y,画像
    if フラグ==True:
        x=e.x
        y=e.y
        if 100",mouse_click)

canvas=tkinter.Canvas(root,width=800,height=650)
canvas.pack()

カード=tkinter.PhotoImage(file="image/カード.png")
ケーキ=tkinter.PhotoImage(file="image/cake.png")
リンゴ=tkinter.PhotoImage(file="image/apple.png")
イヌ=tkinter.PhotoImage(file="image/dog.png")
ベル=tkinter.PhotoImage(file="image/ベル.png")
消しゴム=tkinter.PhotoImage(file="image/eraser.png")

canvas.create_image(400,300,image=カード)
canvas.create_text(580,540,text="1",font=("メイリオ",16))
canvas.create_text(660,540,text="B",font=("メイリオ",16))
canvas.create_text(600,575,text="江戸川 コナン",font=("メイリオ",16),anchor="w")
canvas.create_text(75,60,text="10",font=("メイリオ",30))

ケーキボタン=tkinter.Button(image=ケーキ,command=ボタン1)
ケーキボタン.place(x=100,y=600)
リンゴボタン=tkinter.Button(image=リンゴ,command=ボタン2)
リンゴボタン.place(x=200,y=600)
イヌボタン=tkinter.Button(image=イヌ,command=ボタン3)
イヌボタン.place(x=300,y=600)
ベルボタン=tkinter.Button(image=ベル,command=ボタン4)
ベルボタン.place(x=400,y=600)
消しゴムボタン=tkinter.Button(image=消しゴム,command=ボタン5)
消しゴムボタン.place(x=500,y=600)

root.mainloop()