Surf Comp: Terminal Game

My Terminal Game is based on a surfing competition, where you can choose your opponent, board, and various actions that will affect your final score.

I learned a lot while writing this code. The code got more efficient and easy to use as the project went on, so I could see the learning curve unfolding behind me!

I would welcome any feedback at all, but especially in these areas:

  1. Is it better to store classes and functions of similar categories in separate files, or jam them all into one as I have done?
  2. Is there an easy way to improve the readability of the output for the person playing it on the Terminal? I feel like all the text blends into each other and it becomes hard to follow the narrative.
  3. I used classes, objects, conditional statements, and some random numbers. Is there a way I could have used data types like lists and dictionaries to improve how the game runs?

Thanks for taking the time to look at this, I hope to look at some other projects on this forum as well.
-Liam