* Communication protocol Clients need to Initiate a game; Quit a game; Receive scores; Play the alternating round Move pieces and receive feedback; Server needs to Enforce rules; Tally scores; Swap player sides after each round; The Prompt monad may be useful to allow external and "internal" (for testing) interactions. * Unit testing Create typical scenarios to test what the AI would do against what a human player would do. * Dwarf and Troll AI Trolls need to Disperse quickly at the start of the game; Approach lines of dwarves from the side; Avoid lines of dwarves head-on; Avoid clusters of dwarves; Give up when there are no loose dwarves Dwarves need to Form tight cluster for protection; Avoid standing near trolls; Avoid lines of trolls; Stand with another dwarf between them and trolls