def generate_map(): map = Map() num_rows, num_cols = map.get_grid_size() num_rooms = (num_cols * num_rows / 100 + random.randint(2, 5)) * 10 for y in range(0, num_rows): for x in range(0, num_cols): map[y][x] = WALL_TILE_TYPE for _ in range(num_rooms): width = random.randint(6, 8) height = random.randint(4, 6) row = 1 + random.randint(0, num_rows - height - 2) col = 1 + random.randint(0, num_cols - width - 2) if not(tileExistsInRectangle(map, row - 1, col - 1, height + 2, width + 2, FLOOR_TILE_TYPE)): for y in range(row, row + height): for x in range(col, col + width): map[y][x] = FLOOR_TILE_TYPE regionNumbersByTileCoord = { } for y in range(0, num_rows): for x in range(0, num_cols): regionNumbersByTileCoord[(y, x)] = 0 # zero means it has no regionNumber for y in range(0, num_rows): for x in range(0, num_cols): if map[y][x] == FLOOR_TILE_TYPE and regionNumbersByTileCoord[(y, x)] == 0: floodFill(map, regionNumbersByTileCoord, y, x) for y in range(0, num_rows): for x in range(0, num_cols): print(chr(ord('A') + regionNumbersByTileCoord[(y, x)]), end='') print('', end='\n')