An Iterated Prisoner's Dilemma tournament played spatially. During each match agents will compete with each one of their neighbors. After every match, agents will look at the average scores of their neighbors, and adopt the highest scoring strategy if it scored higher than itself.
Round - Every round, agents will choose to either cooperate "c" or defect "d" as their current move, and then play it against each of their neighbors.
Match - A match consists of a set number of rounds, as defined in the Properties tab. At the end of each match, agents' histories are cleared.
Initially, the "defect" strategy will spread rapidly since it can take advantage of naively cooperating strategies. However, since "defect" cannot achieve high scores against itself, it will start to die off. Pockets of mutually cooperating agents then form, and those strategies spread to almost all agents.
For more detail on the Iterated Prisoner's Dilemma, see axelrod.readthedocs.io
This simulation is also available written in Python.