Anbei stelle ich meinen Code zur verfügung (gekürzt)

Für ein Schulprojekt erstelle ich ein spiel mit Pygame.

um eine Welt zu erstellen nutze ich eine CSV Datei.

Diese Datei wird dann ausgewertet aber dabei tritt immer wieder ein Fehler auf:

"line 292, in <module>

  world_data[x][y] = int(tile)

IndexError: list assignment index out of range"

Leider habe ich keine Möglichkeit gefunden dieses Problem zu lösen, weshalb ich hier Hilfesuchen möchte. Ich freue mich über jede Antwort.

Vielen Dank fürs Helfen :)

img_list = []

for x in range(Tile_types):

    img = pygame.image.load(f"C:/Users/paull/OneDrive/Dokumente/Informatik/img/Tile/{x}.png")

    img = pygame.transform.scale(img, (Tile_size *1, Tile_size *1))

    img_list.append(img)

class World():

    def __init__(self):

        self.obstacle_list = []

    def process_data(self, data):

        self.level_length = len(data[0])

        for y, row in enumerate(data):

            for x, tile in enumerate(row):

                if tile >= 0:

                    img = img_list[tile]

                    img_rect = img.get_rect()

                    img_rect.x = x * Tile_size

                    img_rect.y = y * Tile_size

                    tile_data = (img, img_rect)

                    if tile >= 0 and tile <= 7:

                        self.obstacle_list.append(tile_data)

                    elif tile >=8 and tile <= 10:

                        decoration = Decoration(img, x * Tile_size, y * Tile_size)

                        decoration_group.add(decoration)

                    elif tile == 11:

                        player = Soldier("player", x * Tile_size, y * Tile_size, 1, 3)

                        health_bar = Health(10, 10, player.health, player.health)

                    elif tile == 12:

                        boost = Boost(img, x * Tile_size, y * Tile_size)

                        boost_group.add(boost)

                    elif tile == 13:

                        boost_2 = Boost_2(img, x*Tile_size, y * Tile_size)

                        boost_2_group.add(boost_2)

                    elif tile >=14 and tile <= 15:

                        spike = Spike(img, x*Tile_size, y * Tile_size)

                        spike_group.add(spike)

        return player, health_bar

   

    def draw(self):

        for tile in self.obstacle_list:

            tile[1][0] += screen_scroll

            screen.blit(tile[0], tile[1])

world_data = []

for Row in range(Rows):

    r = [-1]* Cols

    world_data.append(r)

with open(f"C:/Users/paull/OneDrive/Dokumente/Informatik/img/Level/level{level}_data.csv", newline="") as csvfile:

    reader = csv.reader(csvfile, delimiter=";")

    for x, row in enumerate(reader):

        for y, tile in enumerate(row):

            world_data[x][y] = int(tile)

   

world = World()

player = world.process_data(world_data)