https://python-tactical.com/mastering-advanced-techniques-for-winning-at-3/