# Explode

## The Game

From http://www.math.chalmers.se/~magnus/GuiFest-95/challenges.html

*(Colin Runciman) *

*Explode is a game for two or more players, in which each
player has an inexhaustible supply of stones of their own
distinctive colour. The game is played by placing the stones on
the nodes of a finite connected graph, according to the rules
below (in which we say a node is `full' when it holds as many
stones as it has incident arcs). *

*Initially there are no stones on the graph. Players take
it in turns to make a move. Each move increases the number of
stones on the graph by one. A player takes a stone from their
supply and places it on any node n not already containing stones
of another colour. If this does not make n full, the move
finishes. If it does make n full, then n `explodes': each
adjacent node is invaded by one of the stones. The colour of any
stones already in the invaded nodes turns to that of the invaders.
Any of the invaded nodes that is now full also explodes in turn,
and so on until either this move has caused every node in the
graph to explode (and the player who made the move wins) or there
are no more full nodes (and it is the next player's turn to move).
*

*Explode is often played on a rectangular board divided
into squares. The squares are the nodes, and there is an arc
between squares with a common edge (ie., assuming at least a 3x3
board, corner squares have two arcs, other edge squares three,
and non-edge squares four). *

*An `explode program' should provide a purely graphical
interface to a rectangular board, depicted on the screen, with a
height and width in squares set when the program is run. The
program should support a contest between two players, displaying
the effect of each move.*

## Code

A solution in Fudgets,
and one in K.

## Session

Offer a 10 x 10 game on port 4567:

k explode -i 4567 10 10

Accept a game:

k explode localhost 4567

Midplay: