"Sowing" was invented by John Conway and first publicized (as far as I know) at the MSRI Workshop on Combinatorial Games in July 1994. The game is played with a set of beans and a line of pots. A legal move consists of picking up all the beans in any pot, and moving towards the opposing player, dropping one bean in each pot, subject to the restriction that the last bean must not land in an empty pot. The player who moves last wins. A sowing position is specifed by a string of hexadecimal digits. Leading and trailing zeros (empty pots) can be ignored. For example, from the position 1223, Left can move to 323 or 1034, and Right can move to 2303 or 2330. Here is the complete evaluation: 1223 = {323, 1034 | 2303, 2330} = {0, 0 | { | 341}, {44 | }} = {0 | { | { | 35}}, 1} = {0 | { | { | 0}}} = 0|-2 To evaluate a single sowing position, type "sowing", followed by the hexadecimal string specifying the position. The letter X can be used to specify a "full" pot, one with with so many beans that they can never be sown. For example, 141 is the same as 1X1. > sowing Enter position (list of hexidecimal digits): 1223 0|-2 The command "sowing [#pots] [#beans]" evaluates all nontrivial positions with the given number of pots and beans. A position is "trivial" if nothing can be sown, or if some full pot can lose a bean and still be full, or if it can be trivially split into several independent games. If #pots (resp. #beans) is zero, all nontrivial positions with the given number of beans (resp. pots) are evaluated. > sowing 0 3 2 pots 3 beans X1 = -1 3 pots 3 beans 201 = 2 111 = 0 4 pots 3 beans 1101 = 2|0 The command "isow" evaluates IMPARTIAL sowing positions, where either player can sow in either direction. > isow Enter position (list of hexidecimal digits): 1223 *2 > isow 0 3 2 pots 3 beans X1 = * 3 pots 3 beans 201 = 0 111 = *2 4 pots 3 beans 1101 = * Sowing was implemented by Jeff Erickson.