52. Mecha corta
Crea una función que simule la propagación de una "mecha" en una matriz, representando un campo de explosivos. La mecha avanza un paso por iteración y, al llegar a un explosivo, lo "detona" y puede afectar a explosivos adyacentes.
La función aceptará una matriz (por ejemplo, list[list[str]]) que represente el campo, donde:
-
’M’es la mecha. -
’E’es un explosivo. -
’’es espacio vacío. -
’D’es un explosivo detonado.
En cada paso, la mecha avanza a un espacio vacío adyacente. Si la mecha está junto a un explosivo, el explosivo detona y la mecha desaparece. Los explosivos detonados se convierten en ’D’.
def simular_mecha(campo: list[list[str]], paso_actual: int) -> list[list[str]]:
# Devuelve el nuevo estado del campo después de un paso
# Tu código aquí
pass
# Ejemplo de campo inicial
campo_inicial = [
[' ', ' ', ' ', ' '],
[' ', 'M', ' ', ' '],
[' ', ' ', 'E', ' '],
[' ', ' ', ' ', ' ']
]
# simular_mecha(campo_inicial, 1) -> La mecha se mueve o detona E si está adyacente.
# Puede ser útil también devolver un booleano indicando si la simulación debe continuar.
Ratoncito
Implementa la simulación de un paso. La mecha se mueve un espacio por iteración. Si la mecha está al lado de un explosivo (’E’), ese explosivo detona (’D’) y la mecha desaparece (se convierte en ’ ’). Si hay múltiples opciones para que la mecha se mueva, elige una aleatoriamente o sigue una regla simple (ej. arriba, abajo, izquierda, derecha).
Dragón
Introduce un "tiempo de detonación" para los explosivos (un número de pasos después de que la mecha los alcance). Implementa la propagación en cadena: cuando un explosivo detona, puede detonar explosivos adyacentes en el siguiente paso (efecto dominó). Puedes representar el estado de un explosivo como ’E’, ’E’ (en cuenta regresiva), ’D’.
This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.
Support me on Ko-fi