You play red. Yellow is one network that does a whole turn.
4,451 units and 24,016 nonzero weights. Your column comes in as 7 inputs (one-hot, or all zero when you haven't played that turn yet); the board after both moves goes out. Each layer reads only the one before, so values needed later pass down through carry units.
| Rule | As ReLU |
|---|---|
| a piece in column c lands on row r | relu(filled(r − 1, c) − filled(r, c)) |
| it lands there and finishes a line | relu(lands + three_others − 3) |
| win, block, danger in column c | OR over rows and lines: s − relu(s − 1) |
| the move | column d beats c if its tiers (legal, win, block, safe) say so, else if its score is higher: [key_d > key_c] + [key_d = key_c]·[score_d > score_c], each part a pair of ReLUs |
the original's 2²¹·win + 2²⁰·block − 2¹⁹·danger − 2²²·full | the same order, without numbers anywhere near 2²⁴ |