def get_win_matrix(self, seed: int | None = None) -> np.ndarray:
        """Find the fraction of the time that Alice and Bob win.

        Args:
            seed: The seed for the random number generator.

        Returns:
            The fraction of the time that they win.
        """
        alice_choices, bob_choices = self.generate_choices(seed)
        win_matrix = np.zeros((3, 3))
        for row in range(3):
            for col in range(3):
                win_matrix[row, col] = np.mean(
                    alice_choices[row, col, :, col] == bob_choices[row, col, :, row]
                )
        return win_matrix
Find the fraction of the time that Alice and Bob win.

        Args:
            seed: The seed for the random number generator.

        Returns:
            The fraction of the time that they win.
        
examples/magic_square.py