I added new functionality by allowing agents to talk with each other. Now, after a set number of turns, two random “players” will improvise together. One player kicks off the interaction and the other reacts. Right now, all that happens is if the player that kicks off the reaction has a quadrant value above a certain threshold and it is higher than the reacting player’s corresponding quadrant, agents are added to that quadrant in the reacting agent. Similarly, if the kicking off agent has a quadrant value below a certain threshold and it is lower than the reacting player, the reacting player loses agents in that quadrant. As expected, this causes all the players to end up being the same, as shown in the below picture. In this example, they all ended up playing on beats 1 and 3.
To fix this, I need to add the sociability and cooperativeness metrics I originally described.