An online set solver.

On Github

Summary

This AI can play single player and multiplayer set on smart-games.org. The solver itself was easy to build and detecting matches just needed modular arithmetic. It was much harder to to manage information transfer to and from the website. I used requests, regex, and lxml to manage REST transactions. However, the website also used realplexor to manage push messaging from the server to the client. The hard part was that realplexor is a streaming Comet server from 2009, predating websockets and server-sent-events. I had to reverse engineer the hidden iframe used by this system to intercept the push messages.