30行目から34行目までが今回悩みました。27行と28行は、悩みに悩んで、ギブアップ直前でした。ネタ本がappendを使っているので、それでなんとかと思ったんですが、ダメでした。データが[ [ ( でしたが、そうだとpygame.draw.linesでエラーでした。かと言って(を取るとthetaを参照できなくなりました。苦し紛れpointlist +=でやったらなんと動きましたが。普通の変数ならかけるでしょうが、リストでも書けるんですね。
もっとスマートな方法も有るような気はします。
オフサイドルールと言うのは、pythonの場合は、インデントが重要で、それが崩れて混乱する元になることもあります。ネット情報では、それを防ぐために、リスト内包表記を使うpython使いがいるということでした。自分の場合は、逆に混乱してしまいそうです。