Growing up I tinkered with BEAM robotics. It's a philosophy of design that begins with these types of very simple reactive circuits usually from scavenged parts. It's nice to see someone break down the effect of different variables in the design.
1 - A robot must protect its existence at all costs.
2 - A robot must obtain and maintain access to its own power source.
3 - A robot must continually search for better power sources.
https://en.wikipedia.org/wiki/Laws_of_robotics#Tilden's_laws