たまこんブログ

学生×プログラミング→2020年3月ブログ開設!趣味の一環でPythonでつくったゲーム や自分が読んで役に立った 本、知識などを紹介しています!

迷路ゲーム完成

前回の続きから、簡単な迷路ゲームを作りました

tamakon3.hatenablog.com

参考本

学んだこと

・簡単なゲームの作り方

目次

  • プログラム実行結果
  • プログラム解説(一部のみ抜粋)

実行結果

f:id:tamakon3:20200415211607g:plain
分かりずらいですが、おめでとうメッセージが出ます。

プログラム解説

 def main_proc():
    global mx,my,yuka

    if key=="Shift_L"and yuka >1:   #左シフトキーを押し、2マス以上塗っていたら
        canvas.delete("PAINT")      #塗ったところを消す
        mx=1                        #キャラクターを初期位置に戻す
        my=1
        yuka=0
        for y in range(7):
            for x in range(10):
                if maze[y][x]==2:
                    maze[y][x]=0
    
    if key == "Up"and maze[my-1][mx]==0:    #upのキーが押されたら
        my=my-1                             #キャラクターのy座標を-20
    if key == "Down"and maze[my+1][mx]==0:
        my=my+1
    if key == "Left"and maze[my][mx-1]==0:
        mx=mx-1
    if key == "Right"and maze[my][mx+1]==0:
        mx=mx+1
    if maze[my][mx]==0: #移動したところが通路なら
        maze[my][mx]=2 #リストの値を2にする
        yuka=yuka+1
        canvas.create_rectangle(mx*80,my*80,mx*80+79,my*80+79,fill="pink",width=0,tag="PAINT") #そこをピンクで塗る
    canvas.delete("MYCHR")  #一旦消す
    canvas.create_image(mx*80+40,my*80+40,image=img,tag="MYCHR")#再度キャラクターの画像を表示

    if yuka ==30:
        canvas.update()
        tkinter.messagebox.showinfo("おめでとう!","全ての床を塗りました!")
    else:
        root.after(300,main_proc)

感想

簡単な迷路ゲームを完成させました。
これからも頑張ります。