49. Bosques procedurales
Crea una función que genere un "bosque procedural" en una matriz. Esto significa rellenar una matriz bidimensional con árboles (o un símbolo que los represente) de forma aleatoria, pero con una cierta densidad.
La función debe aceptar ancho, alto y una densidad (un valor entre 0 y 1, donde 1 significa que toda la matriz está llena de árboles) como parámetros. Devolverá una matriz (lista de listas de caracteres) donde un carácter representa un árbol (ej. ’T’) y otro el espacio vacío (ej. ’ ’).
import random
def generar_bosque_procedural(ancho: int, alto: int, densidad: float) -> list[list[str]]:
# Tu código aquí
pass
# Ejemplo de un bosque 5x5 con 0.5 de densidad (aproximadamente)
# generar_bosque_procedural(5, 5, 0.5)
# [
# [' ', 'T', ' ', 'T', ' '],
# ['T', ' ', 'T', ' ', 'T'],
# [' ', 'T', ' ', 'T', ' '],
# ['T', ' ', 'T', ' ', 'T'],
# [' ', 'T', ' ', 'T', ' ']
# ]
Ratoncito
Implementa la generación del bosque, asegurándote de que la densidad de árboles sea aproximadamente la especificada.
Dragón
Introduce un concepto de "terreno" o "bioma" en la matriz. Por ejemplo, ciertas áreas de la matriz podrían tener una densidad de árboles más alta, o incluso diferentes tipos de árboles (representados por distintos caracteres). También puedes añadir un concepto de "semilla" para la generación aleatoria, de modo que el mismo seed produzca el mismo bosque.
Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.
Apóyame en Ko-fi