Source: https://inventwithpython.com/makinggames.pdf