diff --git a/testing/jungle_generator.py b/testing/jungle_generator.py new file mode 100644 index 0000000..2c7d4ed --- /dev/null +++ b/testing/jungle_generator.py @@ -0,0 +1,96 @@ +import random + +def generate(width, height, edgeRows, edgeCols, seed=None): + grid = [] + for row in range(height): + grid.append([]) + for tile in range(width): + grid[row].append('#') + + #grid = [['#'] * width] * height + + edges = set() + for i in range(edgeCols): + for j in range(edgeRows): + x = i * (width // edgeCols) + y = j * (height // edgeRows) + edges.add((x,y)) + + not_connected = set(edges) + connected = set() + + connected.add(next(iter(not_connected))) + + while len(not_connected) > 0: + (dx, dy) = not_connected.pop() + (ox, oy) = next(iter(connected)) + connected.add((dx, dy)) + + directions = ['N', 'S', 'W', 'E'] + direction = random.choice(directions) + valid_direction = False + while not valid_direction: + direction = random.choice(directions) + if direction == 'N': + valid_direction = oy >= dy + if direction == 'S': + valid_direction = oy <= dy + if direction == 'W': + valid_direction = ox >= dx + if direction == 'E': + valid_direction = ox <= dx + + if direction == 'N': + for y in range(dy, oy+1): + grid[y][ox] = '.' + (minX, maxX) = (ox, dx) if ox < dx else (dx, ox) + for x in range(minX, maxX): + grid[dy][x] = '.' + if direction == 'S': + for y in range(oy, dy+1): + grid[y][ox] = '.' + (minX, maxX) = (ox, dx) if ox < dx else (dx, ox) + for x in range(minX, maxX): + grid[dy][x] = '.' + if direction == 'W': + for x in range(dx, ox+1): + grid[oy][x] = '.' + (minY, maxY) = (oy, dy) if oy < dy else (dy, oy) + for y in range(minY, maxY): + grid[y][dx] = '.' + if direction == 'E': + for x in range(ox, dx+1): + grid[oy][x] = '.' + (minY, maxY) = (oy, dy) if oy < dy else (dy, oy) + for y in range(minY, maxY): + grid[y][dx] = '.' + + for (x, y) in edges: + grid[y][x] = '.' + + for row in grid: + for tile in row: + print(tile, end='') + print() + +generate(80, 20, 6, 8) + +""" +Generate points at random positions +Pick point X and another random point without connections. + +""" + +""" +################################################################ +################################################################ +#############################......############################# +###########################...####.############################# +#################################....#####......################ +##############################..#.##...##.......################ +###############################...####....#.....################ +################################################################ +################################################################ +################################################################ +################################################################ +""" \ No newline at end of file