TLDR
1. The protocol resembles the Quantum Money scheme, where we are given 30 random qubits (a medallion) from {|0⟩,|1⟩,|+⟩,|−⟩}, and are asked to clone them and sell 15 medallions.
2. The bases and values of the qubits are generated with the Python Mersenne Twister PRNG with the outputs truncated, which is insecure. But recovering the internal state still requires us to clone the 30 qubits once, to get enough bits.
3. Construct a circuit to clone a qubit with high enough fidelity (5/6), such that we can successfully duplicate the money once, allowing us to break the PRNG and predict with certainty how the next medallions will be prepared, giving us infinite money and winning the game.