Langton Ant Kata

langton-ant-kata

Descripción

La Hormiga de Langton es un autómata celular universal ideado por el científico Chris Langton en 1986. Este autómata simula el movimiento de una "hormiga" sobre una cuadrícula bidimensional de celdas, siguiendo reglas simples que pueden dar lugar a comportamientos muy complejos. Es un ejercicio interesante para explorar cómo reglas simples pueden generar patrones impredecibles.

Reglas del juego

La Hormiga de Langton se desarrolla en una cuadrícula bidimensional de celdas que pueden estar en uno de dos estados: blanca o negra. La hormiga se mueve sobre esta cuadrícula siguiendo estas reglas:

  1. En una celda blanca, la hormiga gira 90 grados a la derecha, cambia el color de la celda a negro y avanza una celda.
  2. En una celda negra, la hormiga gira 90 grados a la izquierda, cambia el color de la celda a blanco y avanza una celda.

La hormiga repite estos movimientos indefinidamente.

Objetivo de la kata

El objetivo de esta kata es implementar la Hormiga de Langton. Debes escribir una función que tome como entrada un estado inicial de la cuadrícula y la posición inicial de la hormiga, y simule el movimiento de la hormiga a lo largo de un número específico de pasos.

Instrucciones

  1. Representa la cuadrícula como una matriz (lista de listas) de valores booleanos o enteros, donde 1 (o True) indica una celda negra y 0 (o False) indica una celda blanca.
  2. Representa la hormiga con su posición (coordenadas x, y) y su dirección (norte, sur, este, oeste).
  3. Implementa una función que reciba esta matriz, la posición inicial de la hormiga, su dirección inicial, y un número de pasos, y que devuelva el estado final de la cuadrícula y la posición final de la hormiga después de ejecutar esos pasos.
  4. Asegúrate de manejar adecuadamente los bordes de la matriz. Puedes suponer que las celdas fuera de los límites de la matriz están blancas.
  5. Opcionalmente, puedes crear una visualización para observar la trayectoria de la hormiga a lo largo de varios pasos.

Ejemplo

Supongamos que el estado inicial de la cuadrícula es el siguiente:

[
  [0, 0, 0],
  [0, 1, 0],
  [0, 0, 0]
]

Y la posición inicial de la hormiga es (1, 1) con dirección norte. Después de 5 pasos, la cuadrícula y la posición de la hormiga pueden ser:

Cuadrícula:
[
  [0, 0, 0],
  [0, 0, 0],
  [1, 1, 0]
]

Posición de la hormiga: (2, 1)
Dirección de la hormiga: sur
  • Kotlin

    Solución con Kotlin v1