My venture into signal-less logic based on minecart collisions continues. The most recent achievement is a crude full adder:
There are three binary "inputs" in use:
A - weight of the cart pushed from the left side (zinc = 0, lead = 1)
B - weight of the cart pushed by the first cart (gold = 0, lead = 1)
C - path over which the cart gets pushed towards the collision (push south =0, push east = 1)
The collision-acceptor cart ends up on one of the four paths to the right - 00, 01, 10 or 11, according to the inputs. I've tested it repeatedly for all possible combinations.
On the eastern push path, the cart goes over two more ramps and doesn't lose the push speed. This speed advantage is enough to result in a "one higher" output pattern; i had expected needing much more speed and had thus built more ramps, which i then had to bridge over.
Input combinations of zinc-(any)-short, lead-gold-short and zinc-gold-long (0+0+0, 0+1+0, 1+0+0 and 0+0+1 binary) result in below-derail speed after the collision, letting the collided cart roll onto the track ramp below, which provides another speed-based bifurcation. All higher speed combinations result in derail speed of the outgoing cart, all but the highest are still slow enough that they get caught and diverted (to the level above) by the two SW corner ramps on the eastern branch, only the fastest cart gets past them and takes the last corner.
Both pushing and pushed cart return to their starting positions by themselves. The "output" consists of setting or not setting the "sum" bit (cart in the southeast) and the "carry" bit (cart in the east).
Oddities: The wall directly north of the pushed cart is _required_. Without it, the slowest output doesn't work. Notably, the tile directly north of the cart's starting position is required, which on face value should have no influence on the behaviour on a cart on a NSEW ramp one tile southeast of it. The pushed cart thus gets returned by lifting it to the level above and then dropping it into place.
PS: i've built the basic hookups to pass the carry on to the next adder in line. I guess i'll have to go and build the mandatory eight-bit adder based on this thing.