Two things that could be nice little additions/adjustments:
- Randomise which shape starts: as this could take away that "First move, always win" possibility.
- The mouse cursor appears after the first round is won: I'm not sure if the intention is for the Arrow to be shown from the start or if it isn't meant to be shown at all. Either way, one of these doesn't seem intended.
Other than that. Great work, and it makes me look at some of my code slightly differently. =D