User:Aadenboy/ɻ
ɻ (pronounced /ɻə/) is a CA.
Tiles on the grid define the locations where a pointer can be. # is a generic place. o is the start for a single pointer. Pointers step forward every step and only turn left or right when blocked from moving forward, based on the direction it had turned previously. If the pointer hasn't yet turned left or right before, or has such information removed via a four-way intersection, it will be removed.
### >>> ### <<< # ^ # ^ o o o o
##### ##>>> ##### <<<## ##### ##X## # ^ # ^ # ^ ##o ^<o o## o>^ o o ##### ##X## ##### ##X## ##### ##X## # ^ # ^ # ^ ##### ##^## ##### ##^## ##### ##^## # ^ # ^ # ^ o## o>^ ##o ^<o o o
Such layout flips a pointer's existing chirality:
# # ### # o
And can be used to make an oscillator:
#########
# # # #
# ##### #
# # #
##### #
#####
o####
Multiple pointers may collide either head-on (landing on the same tile) or mid-path (swapping positions).
A mid-path collision simply swaps the chiralities of both pointers.
Head-on collisions are calculated per pointer. Each pointer will ignore any paths that are currently occupied by another pointer, or are pointed to by another pointer (as per their chirality). Traveling logic is then followed accordingly. If there are no paths, or its new position is occupied by another pointer, it will turn around instead. The chiralities of all pointers are then flipped.
l>>>X<<<r r<<<X>>>l
# #
# #
l>>>X<<<l r<<<X####
# v
# r
# r
# ^
l>>>X ####X
^ v
r l
# n
# ^
n>>>X n<<<X
^ #
n #
# #
# #
n>>>X<<<n ####X####
# #
# #
The chirality of a pointer can be preserved (flipped) across a four-way intersection like so:
r #
v #
n>>>X#### ####X>>>n
# v
# l