langton_s_ant.py

Created by valmontechno

Created on March 31, 2024

612 Bytes


from kandinsky import set_pixel
from time import sleep

WIDTH = 320
HEIGHT = 222

world = 0b0

position = (WIDTH // 2) + (HEIGHT // 2 * WIDTH)
direction = 0

set_pixel(position % WIDTH, position // WIDTH, (248, 132, 24))

while position < WIDTH * (HEIGHT + 10):
    sleep(0.01)

    world ^= 1 << position
    direction += ((world >> position) & 1) * 2 -1
    direction %= 4

    set_pixel(position % WIDTH, position // WIDTH, '#000000' if (world >> position) & 1 else '#ffffff')
    position += (-WIDTH, 1, WIDTH, -1)[direction]
    set_pixel(position % WIDTH, position // WIDTH, '#f88418')