Add a Second Player
Learn how to add a second player.
We'll cover the following...
Add another player
To add a second player, we just need to pass that player’s name to the Game.add_player/2
function along with the via
tuple that maps to the game PID.
We want both players to know about successfully adding a second player. However, if we fail to add the second player, only that player needs to know. This is a case where we can use broadcast!/3
on success and :reply
tuple if something goes wrong.
Fortunately, we have an easy way to derive the via
tuple and address the right game process. The socket.topic
will always be a string that begins with “game:”
and ends with the first player’s name. We can do a little binary pattern matching to extract just the name. We only need this player’s name to get the via
tuple from Game.via_tuple/1
: