Serpentine Squiggles

String Fight

For context, this page is an in​-​progress attempt to implement this ruleset I devised:

the game is played on a board — classic 8x8, maybe? exact dimensions are probably important in a way that’ll become clear.

there are two players, white and black. white moves first.

the game requires a number of coins that are considered to have two faces, called 0 and 1. each players starts the game with a pile of N such coins. each turn has two phases: manipulation and attack. each player controls one half of the board, and coins on thir half of the board are coins they control.

an important notion for this game is that of a strings. a sequence of coins on the same row constitute a string. each string has a substings defined as expected. you can perform boolean logical operations on strings. for this game, the valid operations are AND, OR, XOR, NAND, NOR, and XNOR.

before the game starts, each player flips coins in secrets (exact procedure tbd) to produce a couple of 3(–5?) bit strings. these are their winstrings. when the game is over, they get victory points for each winstring that occurs among the strings or substrings on the board, and the one with the most wins.

before the game starts, the two players flip coins openly to determine a 4(–6?) bit ‘endstring’. if the endstring is ever formed during the game, the game is over.

during the manipulation phase, each player can chose one of four types of moves:

during the manipulation phase, each player must make a move; if they cannot, the game is over. in other words, when their pile and zone of control is empty, the game is over

during the attack phase, each player has the opportunity to announce an attack if they so desire. when announcing an attack, they must name a logical operation, and a target string that their opponent controls. they then note down a square in secret. this square must have a string at least as long as their target string

when a player is attacked, they may chose to respond by performing logical NOT on the targeted string. to resolve the attack, calculate the resulting string. for every 1, the corresponding coin in the target string is removed from play both players can chose to attack on the same turn, but black’s attack happens after white’s have resolved

naturally this would probably be an easier game to play on a computer

also, instead of flipping coins, you’d probably have to draw slips of paper to ensure the winstrings aren’t shared without leaking info

ooh, advanced version

at the beginning of the game, each player can pick a set number of ‘functions’, which are bound to a set of (possibly rolled, possibly handpicked) ‘opcodes’

during manipulation, attack, or response, a player can point to a string they control that forms a valid opcode, and invoke the relevant function