生徒作品(Python)

生徒作品を紹介します。



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

#変数と定数の設定
index = 0
timer = 0
score = 0
cursor_x = 0
cursor_y = 0
mouse_x = 0
mouse_y = 0
mouse_c = 0
key = ""
#マウス移動の関数
def mouse_move(e):
    global mouse_x,mouse_y
    mouse_x = e.x
    mouse_y = e.y
#マウスボタンの関数
def mouse_press(e):
    global mouse_c
    mouse_c = 1
#二次元リスト
tapioka=[]
check=[]

for i in range(10):
    tapioka.append([0,0,0,0,0,0,0,0])
    check.append([0,0,0,0,0,0,0,0])

def draw_tapioka():
    cvs.delete("tapioka")
    for y in range(10):
        for x in range(8):
            cvs.create_image(x*55.5+46,y*55.5+46,image=タピオカブロック[tapioka[y][x]]
                             ,tag="tapioka")

def check_tapioka():
    for y in range(10):
        for x in range(8):
            check[y][x]=tapioka[y][x]
    for y in range(1,9):
        for x in range(8):
            if check[y][x]>0:
                if check[y-1][x] == check[y][x] and check[y+1][x] == check[y][x]:
                    tapioka[y-1][x]=5
                    tapioka[y][x]=5
                    tapioka[y+1][x]=5
                    
    for y in range(10):
        for x in range(1,7):
            if check[y][x]>0:
                if check[y][x-1] == check[y][x] and check[y][x+1] == check[y][x]:
                    tapioka[y][x-1]=5
                    tapioka[y][x]=5
                    tapioka[y][x+1]=5

    for y in range(1,9):
        for x in range(1,7):
            if check[y][x]>0:
                if check[y-1][x-1] == check[y][x] and check[y+1][x+1] == check[y][x]:
                    tapioka[y-1][x-1]=5
                    tapioka[y][x]=5
                    tapioka[y+1][x+1]=5
                if check[y+1][x-1] == check[y][x] and check[y-1][x+1] == check[y][x]:
                    tapioka[y+1][x-1]=5
                    tapioka[y][x]=5
                    tapioka[y-1][x+1]=5
#タピオカを消す
def sweep_tapioka():
    num = 0
    for y in range(10):
        for x in range(8):
            if tapioka[y][x] == 5:
                tapioka[y][x] = 0
                magic_spell.play()
                num = num + 1
    return num

#タピオカを落下させる関数
def drop_tapioka():
    flg = False
    for y in range(8,-1,-1):
        for x in range(8):
            if tapioka[y][x] !=0 and tapioka[y+1][x] ==0:
                tapioka[y+1][x] = tapioka[y][x]
                tapioka[y][x] = 0
                flg = True
    return flg


#最上段に達したかを調べる関数
def over_tapioka():
    for x in range(8):
        if tapioka[0][x]>0:
            return True
    return False

#最上段にタピオカをセットする関数
def set_tapioka():
    for x in range(8):
        tapioka[0][x]= random.randint(1,4)

#影付きの文字列を表示する関数
def draw_txt(txt,x,y,siz,col,tg):
    fnt = ("HG丸ゴシックM-PRO",siz,"bold")
    cvs.create_text(x+2,y+2,text= txt,fill="black",fon=fnt,tag=tg)#影の部分
    cvs.create_text(x,y,text=txt,fill=col,font=fnt,tag=tg)#文字の部分

#キーの操作
def key_down(e):
    global key
    key = e.keysym

def BGM():
    bgm.play(-1)

#メインの処理
def game_main():
    global index,timer,score
    global cursor_x,cursor_y,mouse_c,key
    if index == 0:
        draw_txt("タピオカパズル",240,240,45,"violet","TITLE")
        draw_txt("クリックしてスタート",212,550,30,"orange","TITLE")
        index = 1
        mouse_c = 0
    elif index == 1:
        if mouse_c == 1:
            for y in range(10):
                for x in range(8):
                    tapioka[y][x]= 0
            mouse_c = 0
            score = 0
            cursor_x = 0
            cursor_y = 0
            set_tapioka
            draw_tapioka()
            cvs.delete("TITLE")
            index = 2
    elif index == 2:
        if drop_tapioka() == False:
            index = 3
        draw_tapioka()
    elif index == 3:
        check_tapioka()
        draw_tapioka()
        index = 4
    elif index == 4:
        sc = sweep_tapioka()
        score = score + sc*10
        if sc>0:
            index = 2
        else:
            if over_tapioka() == False:
                index = 5
            else:
                index = 6
                timer = 0
        draw_tapioka()
    elif index == 5:
        if 14 <= mouse_x and mouse_x<56*8 and 14<=mouse_y and mouse_y <56*10:
            cursor_x = int((mouse_x-14)/55.5)
            cursor_y = int((mouse_y-14)/55.5)
            if mouse_c == 1:
                mouse_c = 0
                set_tapioka()
                if key == "Up":
                    mouse_c = 0
                    tapioka[cursor_y][cursor_x]=tapioka[cursor_y-1][cursor_x]
                    tapioka[cursor_y-1][cursor_x]=check[cursor_y][cursor_x]
                    coin.play()
                    set_tapioka()
                if key == "Down":
                    mouse_c = 0
                    tapioka[cursor_y][cursor_x]=tapioka[cursor_y+1][cursor_x]
                    tapioka[cursor_y+1][cursor_x]=check[cursor_y][cursor_x]
                    coin.play()
                    set_tapioka()
                if key == "Left":
                    mouse_c = 0
                    tapioka[cursor_y][cursor_x]=tapioka[cursor_y][cursor_x-1]
                    tapioka[cursor_y][cursor_x-1]=check[cursor_y][cursor_x]
                    coin.play()
                    set_tapioka()
                if key == "Right":
                    mouse_c = 0
                    tapioka[cursor_y][cursor_x]=tapioka[cursor_y][cursor_x+1]
                    tapioka[cursor_y][cursor_x+1]=check[cursor_y][cursor_x]
                    coin.play()
                    set_tapioka()
                draw_tapioka()
                index = 2
        cvs.delete("CURSOR")
        cvs.create_image(cursor_x*55.5+46,cursor_y*55.5+46,image=カーソル
                         ,tag="CURSOR")

    elif index == 6:
        timer = timer + 1
        if timer == 1:
            draw_txt("GAME OVER",312,268,60,"red","OVER")
        if timer == 50:
            cvs.delete("OVER")
            index = 0
    cvs.delete("INFO")
    draw_txt("SCORE" + str(score),590,20,25,"blue","INFO")
    root.after(100,game_main)

#ウィンドウオブジェクト作成
root = tkinter.Tk()
root.title("落ち物パズル「タピオカ」")
root.resizable(False,False)
root.bind("",mouse_move)
root.bind("",mouse_press)
root.bind("",key_down)
cvs = tkinter.Canvas(root,width=700,height=590)
cvs.pack()
#画像アップロード
背景画像 = tkinter.PhotoImage(file =r"image\tapioka_bg.png")
カーソル = tkinter.PhotoImage(file =r"image\tapioka_cursor.png")
タピオカブロック = [
    None,
    tkinter.PhotoImage(file = r"image\tapioka1.png"),
    tkinter.PhotoImage(file = r"image\tapioka2.png"),
    tkinter.PhotoImage(file = r"image\tapioka3.png"),
    tkinter.PhotoImage(file = r"image\tapioka4.png"),
    tkinter.PhotoImage(file = r"image\消す.png")
]
#効果音
pygame.init()
pygame.mixer.init()
bgm=pygame.mixer.Sound("sound\BGM.mp3")
coin=pygame.mixer.Sound("sound\Coin.mp3")
magic_spell=pygame.mixer.Sound("sound\Magic-Spell.mp3")

#背景画像
cvs.create_image(350,295,image=背景画像)
cvs.create_text(595,280,text="【ルール説明】\n\n①\nクリックする\nとタピオカが\n落下する。\n\n②\nタピオカにカー\nソルをあてて、\n矢印キーを押し\nながらクリック\nすると矢印キー\nの方向にタピオ\nカが転がる。"
                ,fill = "blue",font=("HG丸ゴシックM-PRO",23))
BGM()
game_main()
root.mainloop()



Pythonで記述したコード
import tkinter
import random
import pygame
#変数定義
m_x=0
m_y=0
m_c=0
paint_count=0
score = 0
timer = 30

#画面作成
root = tkinter.Tk()
root.title("風船割りゲーム")
root.geometry("800x600")
root.resizable(False,False)
canvas = tkinter.Canvas(root,width=800,height=600)
canvas.pack()

#画像
背景= tkinter.PhotoImage(file="image\背景.png")
照準= tkinter.PhotoImage(file="image\照準.png")
風船= tkinter.PhotoImage(file="image\風船.png")
風船1= tkinter.PhotoImage(file="image\風船1.png")
風船2= tkinter.PhotoImage(file="image\風船2.png")
着弾_blue= tkinter.PhotoImage(file="image\着弾_blue.png")
着弾_green= tkinter.PhotoImage(file="image\着弾_green.png")
着弾_orange= tkinter.PhotoImage(file="image\着弾_orange.png")
着弾_red= tkinter.PhotoImage(file="image\着弾_red.png")
着弾_yellow= tkinter.PhotoImage(file="image\着弾_yellow.png")
破裂= tkinter.PhotoImage(file="image\破裂.png")
ゲームオーバー= tkinter.PhotoImage(file="image\ゲームオーバー.png")

#効果音
pygame.init()
pygame.mixer.init()
効果音_爆発=pygame.mixer.Sound("sound\爆発.mp3")
効果音_着弾=pygame.mixer.Sound("sound\着弾.mp3")
効果音_バックミュージック=pygame.mixer.Sound("sound\バックミュージック.wav")

#画像リスト
着弾_list = [着弾_blue,着弾_green,着弾_orange,着弾_red,着弾_yellow]

#画像配置
canvas.create_image(400,300,image=背景)
canvas.create_image(200,500,image=風船,tag="風船タグ")
canvas.create_image(400,500,image=風船1,tag="風船タグ1")
canvas.create_image(600,500,image=風船2,tag="風船タグ2")

#ラベル作成
#スコア
label_score = tkinter.Label(root,text="スコア0点",font=("system",24),bg="orange",fg="white")
label_score.place(x=1,y=1)
#タイマー
label_timer = tkinter.Label(root,text = "スタート",font=("system",24),bg="blue",fg="White")
label_timer.place(x=650,y=1)

#関数設定
def mouse_move(e):
    global m_x,m_y
    m_x = e.x
    m_y = e.y

def mouse_press(e):
    global m_c
    m_c = 1

def mouse_release(e):
    global m_c
    m_c = 0

def timer_setup():
    global timer,stop
    timer = timer - 1    
    label_timer["text"]="残り"+str(timer)+"秒"
    root.after(1000,timer_setup)

def game_main_風船():
    if canvas.coords("風船タグ")>[200,-70]:
        canvas.move("風船タグ",0,-30)
        if canvas.coords("風船タグ")==[200,-70]:
            canvas.delete("風船タグ")
            canvas.create_image(200,500,image=風船,tag="風船タグ")

    if canvas.coords("風船タグ1")>[400,-70]:
        canvas.move("風船タグ1",0,-20)
        if canvas.coords("風船タグ1")==[400,-20]:
            canvas.delete("風船タグ1")
            canvas.create_image(400,500,image=風船1,tag="風船タグ1")

    if canvas.coords("風船タグ2")>[600,-70]:
        canvas.move("風船タグ2",0,-50)
        if canvas.coords("風船タグ2")==[600,-100]:
            canvas.delete("風船タグ2")
            canvas.create_image(600,500,image=風船2,tag="風船タグ2")
            
    root.after(230,game_main_風船)

def ending():
    global score
    canvas.delete("all")
    label_timer.place_forget()
    label_score.place_forget()
    canvas.create_image(400,200,image=ゲームオーバー,tag="ゲームオーバー")
    label_score.place(x=100,y=300)
    label_score["bg"]= "black"
    label_score["font"]="system",80
    label_score["text"]="スコア",score,"点"

def バックミュージック():
    効果音_バックミュージック.play()
    root.after(4000,バックミュージック)

def game_main():
    global m_c,paint_count 
    canvas.delete("照準タグ")
    if m_c == 1:
        paint_count= paint_count + random.randint(0,5)
        canvas.delete("着弾タグ")
        canvas.create_image(m_x,m_y,image=着弾_list[paint_count%5],tag="着弾タグ")
        効果音_着弾.play()
        衝突判定()
        衝突判定1()
        paint_count = 0
    else:
        canvas.create_image(m_x,m_y,image=照準,tag="照準タグ")
    if timer== 0:
        ending()
    
    root.after(130,game_main)

def 衝突判定():
    global score,label_score
    #風船タグの衝突判定
    b_x1,b_y1,b_x2,b_y2=canvas.bbox("風船タグ")
    風船位置=b_x1 + b_y1 + b_x2 + b_y2
    p_x1,p_y1,p_x2,p_y2=canvas.bbox("着弾タグ")
    着弾位置=p_x1 + p_y1 + p_x2 + p_y2
    if abs(風船位置-着弾位置) <= 50:
        canvas.create_image(m_x,m_y,image=破裂,tag="破裂タグ")
        canvas.delete("破裂タグ")
        効果音_爆発.play()
        score = score + 1
        label_score["text"]="スコア",score,"点"
        canvas.create_image(m_x,m_y,image=破裂,tag="破裂タグ")
        
def 衝突判定1():
    global score,label_score
    #風船タグ1の衝突判定
    b1_x1,b1_y1,b1_x2,b1_y2=canvas.bbox("風船タグ1")
    風船位置1=b1_x1 + b1_y1 + b1_x2 + b1_y2
    p_x1,p_y1,p_x2,p_y2=canvas.bbox("着弾タグ")
    着弾位置=p_x1 + p_y1 + p_x2 + p_y2
    if abs(風船位置1-着弾位置) <= 50:
        canvas.create_image(m_x,m_y,image=破裂,tag="破裂タグ")
        canvas.delete("破裂タグ")
        効果音_爆発.play()
        score = score + 1
        label_score["text"]="スコア",score,"点"
        canvas.create_image(m_x,m_y,image=破裂,tag="破裂タグ")
        
def 衝突判定2():
    global score,label_score
    #風船タグ1の衝突判定
    b2_x1,b2_y1,b2_x2,b2_y2=canvas.bbox("風船タグ2")
    風船位置2=b2_x1 + b2_y1 + b2_x2 + b2_y2
    p_x1,p_y1,p_x2,p_y2=canvas.bbox("着弾タグ")
    着弾位置=p_x1 + p_y1 + p_x2 + p_y2
    if abs(風船位置2-着弾位置) <= 80:
        canvas.create_image(m_x,m_y,image=破裂,tag="破裂タグ")
        canvas.delete("破裂タグ")
        効果音_爆発.play()
        score = score + 1
        label_score["text"]="スコア",score,"点"
        canvas.create_image(m_x,m_y,image=破裂,tag="破裂タグ")
    
#操作
root.bind("",mouse_move)
root.bind("",mouse_press)
root.bind("",mouse_release)
バックミュージック()
game_main()
game_main_風船()
timer_setup()
#ループ
root.mainloop()



Pythonで記述したコード
import tkinter
import pygame
#ウィンドウ作成
ウィンドウ = tkinter.Tk()
ウィンドウ.title("自動販売機")
ウィンドウ.geometry("800x700")

#フラグ
フラグ=0

#効果音
pygame.init()
pygame.mixer.init()
効果音_商品落下=pygame.mixer.Sound("sound\商品落下.mp3")
効果音_コイン=pygame.mixer.Sound("sound\コイン.mp3")
効果音_お金を入れてください=pygame.mixer.Sound("sound\お金を入れてください.mp3")

#画像ファイル
自販機画像 = 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.Canvas(ウィンドウ,width=800,height=700)
キャンバス.create_image(400,350,image=自販機画像)
キャンバス.place(x=0,y=0)

#変数
お金 = 100

#クリック時の操作
def クリックボタン_コーラ():
    global フラグ,お金
    お金=ラベル_硬貨表示["text"]
    if お金 != "----":
        お金 = int(お金[1:5])   
        会計 = お金 - 150
        if フラグ==1 and お金>=150:
            ラベル_商品投下["image"] = コーラ画像
            効果音_商品落下.play()
            ラベル_硬貨表示["text"] = "\\"+str(会計)
            ラベル_硬貨表示.place(x=429,y=411)
            if 会計<150:
                お金=100
                フラグ=0
        else:
            効果音_お金を入れてください.play()
    else:
        効果音_お金を入れてください.play()
        お金 = 100

def クリックボタン_お茶():
    global フラグ,お金
    お金=ラベル_硬貨表示["text"]
    if お金 != "----":
        お金 = int(お金[1:5])
        会計 = お金 - 140
        if フラグ==1 and お金>=140:    
            ラベル_商品投下["image"] = お茶画像
            効果音_商品落下.play()
            ラベル_硬貨表示["text"] = "\\"+str(会計)
            ラベル_硬貨表示.place(x=429,y=411)
            if 会計<150:
                お金=100
                フラグ=0
        else:
            効果音_お金を入れてください.play()
    else:
        効果音_お金を入れてください.play()
        お金 = 100

def クリックボタン_ビール():
    global フラグ,お金
    お金=ラベル_硬貨表示["text"]
    if お金 != "----":
        お金 = int(お金[1:5])
        会計 = お金 - 300
        if フラグ==1 and お金>=300:     
            ラベル_商品投下["image"] = ビール画像
            効果音_商品落下.play()
            ラベル_硬貨表示["text"] = "\\"+str(会計)
            ラベル_硬貨表示.place(x=429,y=411)
            if 会計<150:
                お金=100
                フラグ=0
        else:
            効果音_お金を入れてください.play()
    else:
        効果音_お金を入れてください.play()
        お金 = 100

def クリックボタン_コイン():
    global フラグ,お金
    フラグ=1
    if フラグ==1:
        効果音_コイン.play()
        ラベル_硬貨表示["text"] = "\\"+str(お金)
        ラベル_硬貨表示.place(x=429,y=411)
        ラベル_商品投下["image"] = ""
        お金+=100

#ボタン
ボタン_コーラ = tkinter.Button(ウィンドウ,image=ボタン画像,command =クリックボタン_コーラ)
ボタン_コーラ.place(x=233,y=245)
ボタン_お茶 = tkinter.Button(ウィンドウ,image=ボタン画像,command =クリックボタン_お茶)
ボタン_お茶.place(x=383,y=245)
ボタン_ビール = tkinter.Button(ウィンドウ,image=ボタン画像,command =クリックボタン_ビール)
ボタン_ビール.place(x=533,y=245)
ボタン_コイン = tkinter.Button(ウィンドウ,image=自販機_コイン,command =クリックボタン_コイン,bd=0)
ボタン_コイン.place(x=505,y=405)

#ラベル
ラベル_コーラ = tkinter.Label(ウィンドウ,image=コーラ_縦画像)
ラベル_コーラ.place(x=229,y=153)
ラベル_お茶 = tkinter.Label(ウィンドウ,image=お茶_縦画像)
ラベル_お茶.place(x=383,y=152)
ラベル_ビール = tkinter.Label(ウィンドウ,image=ビール_縦画像)
ラベル_ビール.place(x=525,y=168)
ラベル_商品投下 = tkinter.Label(ウィンドウ,font = ("system",24))
ラベル_商品投下.place(x=195,y=570)
ラベル_硬貨表示 = tkinter.Label(ウィンドウ,text ="----" ,font = ("system",18),bg="black",fg="red")
ラベル_硬貨表示.place(x=429,y=411)

#メインループ
ウィンドウ.mainloop()



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()



Pythonで記述したコード
import tkinter

#マップの描画
def draw_map():
  for y in range(0,MAX_HEIGHT):
    for x in range(0,MAX_WIDTH):
      p = map_data[y][x]
      canvas.create_image(x*48+26,y*48+26,image=images[p])
      canvas.create_image(man_x*48+26,man_y*48+26,image=images[8],tag="man")
MAX_HEIGHT = 10
MAX_WIDTH = 20
key_flag = False
endd = False
#button_used
def button_used():
  canvas.delete("man_e")
  canvas.create_image(man_x*48+26,man_y*48+26,image=images[8],tag="man")
  map_data[8][7] = 0
  canvas.delete("all")
  draw_map()

#goal
def goal():
  canvas.delete("all")
  end = tkinter.Canvas(root,width=960,height=482,bg="black")
  end.pack()
  end.create_text(400,200,fill="white",font=("SYSTEM",20),
                       text="""ゴールおめでとう。

だが、君の戦いはまだ始まったばかりだ。

         ・・・・・・つづく?""")
  
#メインシステム
def key_down(e):
  global key
  key = e.keysym
def key_up(e):
  global key
  key = ""
def main_proc():
  global man_x,man_y,key_flag,endd
  if endd == False:
    #Up
    if key =="Up" and map_data[man_y-1][man_x] == 7 or key =="Up" and map_data[man_y-1][man_x] == 6 or key =="Up" and map_data[man_y-1][man_x] == 4 or key =="Up" and map_data[man_y-1][man_x] == 2 or key =="Up" and map_data[man_y-1][man_x] == 0:
      man_y = man_y - 1
    #Down
    if key =="Down" and map_data[man_y+1][man_x] == 4 or key =="Down" and map_data[man_y+1][man_x] == 2 or key =="Down" and map_data[man_y+1][man_x] == 0:
      man_y = man_y + 1
    #Right
    if key =="Right" and map_data[man_y][man_x+1] == 4 or key =="Right" and map_data[man_y][man_x+1] == 2 or key =="Right" and map_data[man_y][man_x+1] == 0 or key =="Right" and map_data[man_y][man_x+1] == 3 or key =="Right" and map_data[man_y][man_x+1] == 11 or key =="Right" and map_data[man_y][man_x+1] == 12:
      man_x = man_x +  1 
    #Left
    if key =="Left" and map_data[man_y][man_x-1] == 7 or key =="Left" and map_data[man_y][man_x-1] == 6 or key =="Left" and map_data[man_y][man_x-1] == 4 or key =="Left" and map_data[man_y][man_x-1] == 2 or key =="Left" and map_data[man_y][man_x-1] == 0:
      man_x = man_x - 1
    #skip
    if key =="space":
      man_x = 18
      man_y = 4
    #button
    if map_data[man_y][man_x] == 3:
      map_data[man_y][man_x] = 12
      canvas.delete("man")
      canvas.create_image(man_x*48+26,man_y*48+26,image=images[11],tag="man_e")
      root.after(300,button_used)
    #key収集
    if map_data[man_y][man_x] == 6:
      key_flag = True
      canvas.delete("man")
      canvas.create_image(man_x*48+26,man_y*48+26,image=images[4],tag="man_e")
    #goal
    if map_data[man_y][man_x] == 7:
      if key_flag == True:
        goal()
        endd = True 
    #grass_field
    if map_data[man_y][man_x] == 2 or map_data[man_y][man_x] == 0:
      canvas.delete("man")
      canvas.create_image(man_x*48+26,man_y*48+26,image=images[8],tag="man")
    #sand_field
    if map_data[man_y][man_x] == 4 or map_data[man_y][man_x] == 6 or map_data[man_y][man_x] == 7:
      canvas.delete("man")
      canvas.create_image(man_x*48+26,man_y*48+26,image=images[9],tag="man")
    root.after(200,main_proc)

#ウィンドウ作成
root = tkinter.Tk()
root.title("自由制作")
root.minsize(980,502)
root.bind("",key_down)
root.bind("",key_up)
#キャンバス作成
canvas = tkinter.Canvas(root,width=960,height=482)
canvas.place(x=10,y=10)
canvas.create_rectangle(0,0,960,482,fill="gray",tag="draw_field")

#画像データ読み込み
images=[tkinter.PhotoImage(file="images\\mapfield_grass.png"),
       tkinter.PhotoImage(file="images\\mapwall_grass.png"),
       tkinter.PhotoImage(file="images\\flower_grass.png"),
       tkinter.PhotoImage(file="images\\button_grass.png"),
       tkinter.PhotoImage(file="images\\mapfield_sand.png"),
       tkinter.PhotoImage(file="images\\mapwall_sand.png"),
       tkinter.PhotoImage(file="images\\mapkey_sand.png"),
       tkinter.PhotoImage(file="images\\mapgoal_sand.png"),
       tkinter.PhotoImage(file="images\\mapman_grass.png"),
       tkinter.PhotoImage(file="images\\mapman_sand.png"),
       tkinter.PhotoImage(file="images\\sea.png"),
        tkinter.PhotoImage(file="images\\button_grass_effect.png"),
        tkinter.PhotoImage(file="images\\button_grass_used.png"),
        tkinter.PhotoImage(file="images\\mapfield_grass_ojama.png")]
map_data = [
  [1,0,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],
  [1,2,0,1,1,5,7,4,5,5,5,6,4,4,4,5,4,4,4,5],
  [1,1,0,1,1,1,5,4,4,4,5,5,5,5,4,4,4,5,4,5],
  [1,0,0,0,1,1,5,4,5,4,4,4,4,5,5,5,5,5,4,5],
  [1,0,1,0,1,1,1,5,5,4,4,5,4,4,4,4,4,4,4,5],
  [1,2,1,0,0,1,1,1,5,5,4,5,5,5,5,4,5,5,4,5],
  [1,0,0,1,0,0,1,1,5,5,4,4,5,4,4,4,5,5,4,5],
  [10,0,0,1,1,0,1,1,5,5,5,5,4,4,5,5,4,5,4,5],
  [10,10,0,3,1,0,0,13,4,4,4,4,4,5,4,4,4,4,4,5],
  [10,10,10,10,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5]
  ]
man_x = 1
man_y = 0
key = ""
main_proc()
draw_map()
root.mainloop()



Pythonで記述したコード
import tkinter

def click_btn1():
    if label["text"] == "0":
        label["text"] = "1"
    else:
        label["text"] = label["text"] +"1"
def click_btn2():
    if label["text"] == "0":
        label["text"] = "2"
    else:
        label["text"] = label["text"] +"2"
def click_btn3():
    if label["text"] == "0":
        label["text"] = "3"
    else:
        label["text"] = label["text"] +"3"
def click_btn4():
    if label["text"] == "0":
        label["text"] = "4"
    else:
        label["text"] = label["text"] +"4"
def click_btn5():
    if label["text"] == "0":
        label["text"] = "5"
    else:
        label["text"] = label["text"] +"5"
def click_btn6():
    if label["text"] == "0":
        label["text"] = "6"
    else:
        label["text"] = label["text"] +"6"
def click_btn7():
    if label["text"] == "0":
        label["text"] = "7"
    else:
        label["text"] = label["text"] +"7"
def click_btn8():
    if label["text"] == "0":
        label["text"] = "8"
    else:
        label["text"] = label["text"] +"8"
def click_btn9():
    if label["text"] == "0":
        label["text"] = "9"
    else:
        label["text"] = label["text"] +"9"
def click_btn0():
    if label["text"] == "0":
        label["text"] = "0"
    else:
        label["text"] = label["text"] +"0"
    
def click_btnAc():
    global フラグ
    label["text"] = "0"
    buttonPlus["fg"] = "black"
    buttonMinus["fg"] = "black"
    buttonMulti["fg"] = "black"
    buttonDived["fg"] = "black"
    フラグ=0
    
def click_btnPlus():
    global box
    global hugo
    box = label["text"]
    label["text"] = "0"
    hugo = "+"
    buttonPlus["fg"] = "orange"
    buttonMinus["fg"] = "black"
    buttonMulti["fg"] = "black"
    buttonDived["fg"] = "black"
def click_btnMinus():
    global box
    global hugo
    box = label["text"]
    label["text"] = "0"
    hugo = "-"
    buttonPlus["fg"] = "black"
    buttonMinus["fg"] = "orange"
    buttonMulti["fg"] = "black"
    buttonDived["fg"] = "black"
def click_btnMulti():
    global box
    global hugo
    box = label["text"]
    label["text"] = "0"
    hugo = "×"
    buttonPlus["fg"] = "black"
    buttonMinus["fg"] = "black"
    buttonMulti["fg"] = "orange"
    buttonDived["fg"] = "black"
def click_btnDived():
    global box
    global hugo
    box = label["text"]
    label["text"] = "0"
    hugo = "÷"
    buttonPlus["fg"] = "black"
    buttonMinus["fg"] = "black"
    buttonMulti["fg"] = "black"
    buttonDived["fg"] = "orange"

def click_btnzeikomi():
    global box,フラグ
    if フラグ == 0:
        box = label["text"]
        box_Int1 = int(box)
        result = box_Int1 * 1.1
        label["text"] = int(result)
        フラグ=1

def click_btnEqual():
    box_Int1 = int(box)
    box2 = label["text"]
    box_Int2 = int(box2)
    
    if hugo == "+":
        result = box_Int1 + box_Int2
        label["text"] = result
    elif hugo == "-":
        result = box_Int1 - box_Int2
        label["text"] = result
    elif hugo == "×":
        result = box_Int1 * box_Int2
        label["text"] = result
    elif hugo == "÷":
        result = box_Int1 / box_Int2
        label["text"] = result      
    else:
        label["text"] = "Error"

ウィンドウ = tkinter.Tk()
ウィンドウ.title("計算機")
ウィンドウ.geometry("500x600")
ウィンドウ.resizable(False,False)
フラグ=0

#画像ファイル
計算機 = tkinter.PhotoImage(file="image\計算機.png")
ボタン0 = tkinter.PhotoImage(file="image\ボタン0.png")
ボタン1 = tkinter.PhotoImage(file="image\ボタン1.png")
ボタン2 = tkinter.PhotoImage(file="image\ボタン2.png")
ボタン3 = tkinter.PhotoImage(file="image\ボタン3.png")
ボタン4 = tkinter.PhotoImage(file="image\ボタン4.png")
ボタン5 = tkinter.PhotoImage(file="image\ボタン5.png")
ボタン6 = tkinter.PhotoImage(file="image\ボタン6.png")
ボタン7 = tkinter.PhotoImage(file="image\ボタン7.png")
ボタン8 = tkinter.PhotoImage(file="image\ボタン8.png")
ボタン9 = tkinter.PhotoImage(file="image\ボタン9.png")
ボタンAC = tkinter.PhotoImage(file="image\ボタンAC.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.Canvas(ウィンドウ,width=900,height=700)
キャンバス.create_image(250,300,image=計算機)
キャンバス.place(x=0,y=0)

# ラベルやボタンの作成と配置
label = tkinter.Label(ウィンドウ, anchor="e",text="0",
                      background="white",font=("system",25,"bold"))
label.place(x=90, y=32, width=320, height=64)

button1 = tkinter.Button(ウィンドウ,text = "1",image=ボタン1,command=click_btn1)
button1.place(x=80, y=305, relwidth=0.16, relheight= 0.1)

button2 = tkinter.Button(ウィンドウ,text = "2",image=ボタン2,command=click_btn2)
button2.place(x=166, y=305, relwidth=0.16, relheight= 0.1)

button3 = tkinter.Button(ウィンドウ,text = "3",image=ボタン3,command=click_btn3)
button3.place(x=252, y=305, relwidth=0.16, relheight= 0.1)

buttonPlus = tkinter.Button(ウィンドウ,text = "+",image=ボタンプラス, command=click_btnPlus)
buttonPlus.place(x=338, y=305, relwidth=0.16, relheight= 0.1)

button4 = tkinter.Button(ウィンドウ,text = "4",image=ボタン4,command=click_btn4)
button4.place(x=80, y=242, relwidth=0.16, relheight= 0.1)

button5 = tkinter.Button(ウィンドウ,text = "5",image=ボタン5,command=click_btn5)
button5.place(x=166, y=242, relwidth=0.16, relheight= 0.1)

button6 = tkinter.Button(ウィンドウ,text = "6",image=ボタン6,command=click_btn6)
button6.place(x=252, y=242, relwidth=0.16, relheight= 0.1)

buttonMinus = tkinter.Button(ウィンドウ,text = "-",image=ボタンマイナス,command=click_btnMinus)
buttonMinus.place(x=338, y=242, relwidth=0.16, relheight= 0.1)

button7 = tkinter.Button(ウィンドウ,text = "7",image=ボタン7,command=click_btn7)
button7.place(x=80, y=178, relwidth=0.16, relheight= 0.1)

button8 = tkinter.Button(ウィンドウ,text = "8",image=ボタン8,command=click_btn8)
button8.place(x=166, y=178, relwidth=0.16, relheight= 0.1)

button9 = tkinter.Button(ウィンドウ,text = "9", image=ボタン9,command=click_btn9)
button9.place(x=252, y=178, relwidth=0.16, relheight= 0.1)

buttonMulti = tkinter.Button(ウィンドウ,text = "×",image=ボタン掛ける,command=click_btnMulti)
buttonMulti.place(x=337, y=178, relwidth=0.16, relheight= 0.1)

button0 = tkinter.Button(ウィンドウ,text = "0",image=ボタン0,command=click_btn0)
button0.place(x=80, y=369, relwidth=0.33, relheight= 0.1)

buttonEqual = tkinter.Button(ウィンドウ,text = "=",image=ボタンイコール,command=click_btnEqual)
buttonEqual.place(x=337, y=369, relwidth=0.16, relheight= 0.1)

buttonAc = tkinter.Button(ウィンドウ,text = "AC",image=ボタンAC,command=click_btnAc)
buttonAc.place(x=80, y=115, relwidth=0.17, relheight= 0.1)

buttonDived = tkinter.Button(ウィンドウ,text = "÷",image=ボタン割る,command=click_btnDived)
buttonDived.place(x=336, y=115, relwidth=0.16, relheight= 0.1)

buttonzeikomi = tkinter.Button(ウィンドウ,text = "税込み",image=ボタン税込,command=click_btnzeikomi)
buttonzeikomi.place(x=166, y=115, relwidth=0.335, relheight= 0.1)

ウィンドウ.mainloop()