いつも大変お世話になっております。
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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/22 03:59