An implementation of the Prisoner's Dilemma puzzle in Scala