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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2994閲覧

TypeError: 'int' object is not subscriptableが解決できません。

TakeshiSaito

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/22 02:27

いつも大変お世話になっております。

67行目のエラー、「TypeError: 'int' object is not subscriptable」が出るのは何故でしょうか?

よろしくお願いいたします。

python

1 2コード 3import pygame 4import sys 5import random 6 7CYAN = ( 0, 255, 255) 8GRAY = ( 96, 96, 96) 9 10MAZE_W = 11 11MAZE_H = 9 12maze = [] 13for y in range(MAZE_H): 14 maze.append([0]*MAZE_W) 15 16def make_maze(): 17 XP = [ 0, 1, 0,-1] 18 YP = [-1, 0, 1, 0] 19 20 #周りの壁 21 for x in range(MAZE_W): 22 maze[0][x] = 1 23 maze[MAZE_H-1] = 1 24 for y in range(1, MAZE_H-1): 25 maze[y][0] = 1 26 maze[y][MAZE_W-1] =1 27 28 #中を何もない状態に 29 for y in range(1,MAZE_H-1): 30 for x in range(1, MAZE_W-1): 31 maze[y][x] = 0 32 33 #柱 34 for y in range(2, MAZE_H-2, 2): 35 for x in range(2, MAZE_W-2, 2): 36 maze[y][x] = 1 37 38 #柱から上下左右に壁を作る 39 for y in range(2, MAZE_H-2, 2): 40 for x in range(2, MAZE_W-2, 2): 41 d = random.randint(0, 3) 42 if x > 2: #二列目からは左に壁を作らない 43 d =random.randint(0, 2) 44 maze[y+YP[d]][x+XP[d]] = 1 45 46def main(): 47 pygame.init() 48 pygame.display.set_caption("迷路を作る") 49 screen = pygame.display.set_mode((528, 432)) 50 clock = pygame.time.Clock() 51 52 make_maze() 53 54 while True: 55 for event in pygame.event.get(): 56 if event.type == pygame.QUIT: 57 pygame.quit() 58 sys.exit() 59 if event.type == pygame.KEYDOWN: 60 if event.key == pygame.K_SPACE: 61 make_maze() 62 63 for y in range(MAZE_H): 64 for x in range(MAZE_W): 65 W = 48 66 H = 48 67 X = x*W 68 Y = y*H 69ここです→  if maze[y][x] == 0: #通路 70 pygame.draw.rect(screen, CYAN, [X, Y, W, H]) 71 if maze[y][x] == 1: #壁 72 pygame.draw.rect(screen, GRAY, [X, Y, W, H]) 73 74 pygame.display.update() 75 clock.tick(2) 76 77if __name__ == '__main__' : 78 main() 79 80 81

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

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

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

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

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

guest

回答1

0

ベストアンサー

迷路を作る段階で少しばかり誤りがあった様です。

python

1 #周りの壁 2 for x in range(MAZE_W): 3 maze[0][x] = 1 4 #maze[MAZE_H-1] = 1 5 maze[MAZE_H-1][x] = 1 6 for y in range(1, MAZE_H-1): 7 maze[y][0] = 1 8 maze[y][MAZE_W-1] =1

投稿2021/12/22 02:58

melian

総合スコア20655

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

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

TakeshiSaito

2021/12/22 03:59

解決できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問