source
In this game, each player is automatically assigned to either team O or
team X. During their turn, players can vote for any legal move, and once
the voting period ends, the move with the most votes is played. If there
are no players or no votes, a random move will be made. Grey numbers indicate
the vote counts, which are either shown after a move is made or continuously
during the opponent's turn.
The backend is built using Go, with goroutines managing websocket connections,
game timing, and broadcasting the updated game state to all players in real-time.
For example, vote counts and the number of players in each team are updated
multiple times per second.