質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

1425閲覧

迷路の画像の表示がうまくいかない

kakini

総合スコア40

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/10/16 05:44

Python3.6.3を使っています
pythonの本に載っていたスクリプトで迷路を作ろうというものが出てきたのですが
どうもうまくいきません

python

1data=[ 2 [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], 3 [1,2,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1], 4 [1,0,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,1,1], 5 [1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1], 6 [1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,1,0,0,1], 7 [1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,1,1,1], 8 [1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1], 9 [1,0,1,0,0,1,1,1,0,1,0,1,0,1,1,0,1,1,1], 10 [1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,3,1], 11 [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] 12] 13

まずこれをmaze_dataという名前で保存した後

python

1from tkinter import * 2 3tile_size=20 4 5def load_map_data(): 6 from maze_data import data 7 return data 8 9 10def draw_map(cv,data): 11 rows=len(data) 12 cols=len(data[0]) 13 for y in range(rows): 14 y1=y*tile_size 15 y2=y1+tile_size 16 17 for x in range(cols): 18 x1=x*tile_size 19 x2=x1+tile_size 20 21 p=data[y][x] 22 23 if p==0:color="white" 24 if p==1:color="#404040" 25 if p==2:color="red" 26 if p==3:color="blue" 27 28 cv.create_rectangle( 29 x1,y1,x2,y2, 30 fill=color, 31 outline="black",width=2) 32 33def create_window(map_data,events=[]): 34 win=Tk() 35 win.title("迷路") 36 rows=len(map_data) 37 cols=len(map_data[0]) 38 cv=Canvas(win, 39 width=(cols*tile_size), 40 height=(rows*tile_size)) 41 cv.pack() 42 draw_map(cv.map_data) 43 44 for func in events: func(cv.map_data) 45 win.mainloop() 46 47if __name__=="__main__": 48 map_data=load_map_data() 49 create_window(map_data) 50

をIDLE(シェル?)で実行しました
その結果
RESTART: C:\Users\user\AppData\Local\Programs\Python\Python36-32\maze_show.py
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\maze_show.py", line 49, in <module>
create_window(map_data)
File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\maze_show.py", line 42, in create_window
draw_map(cv.map_data)
AttributeError: 'Canvas' object has no attribute 'map_data'

この様なエラーが出てきました。
ちなみに「迷路」というタイトルが付いたウィンドウだけは表示されましたが、
迷路の部分は灰色状態で何も表示されませんでした。
一応何度もスクリプトを見直したり打ち直したりしましたが同じエラーばかりでます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

typo ではないでしょうか

Python

1draw_map(cv.map_data)

Python

1draw_map(cv,map_data)

投稿2018/10/16 05:56

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問