Another problem. I can't write to an existing file. I want it to create a file with the characterName, and read the same file again. However it just creates a new file with a blank title, and writes the data there. Here's the code:

This is going to be a suggestion that's painful to implement up front, but that will save you a lot of pain on the flipside.

Your classes currently correspond to actions that you want to take: creating a name, creating a class, launching the game. The actual object in question, though, is the character. That should, IMO, be your one class. Then, you can create methods of that class to create the name, get his class, etc.

(1) In the end, it will clean away some of the fuzziness. The fact that you have massive numbers of global variables is an indication that there is difficulty getting the classes to interface with each other. That difficulty will compound as your game code progresses.

(2) Creating a character class will help you to simplify some of the problems like reading and writing from files. For example, the Character class can have a __str__() method that returns his proper representation. Then the "write to file" method becomes a piece of cake!

(3) There will come a day when you get the program working and want to allow more than one player to play. On that day, you will rejoice to have a character class that allows you to create *two or more* character objects, and *POOF*, you have a multi-player game. :cheesy:

I hope this is helpful rather than otherwise. Nevertheless, that's how I would refactor the code.

So, what would doing that basically be creating the Character class, and moving all the def statements into the class, all calling each other as needed, with the code being cut/pasted into each def? like the character class will create the start menu too?

I've turned the whole game into one class, and it works. I'm having trouble getting an image to appear on the fightZone form, it doesn't give error messages, but it is not displaying the image.
Here's the .zip