On 21/12/12 07:40, Ciaran Mooney wrote:

def difficultyLevel():
     FPS = ''

Here you set the variable FPS to the empty string.

         if event.type == KEYDOWN:
             if event.key == ord('b'):
                 FPS = 30
             elif event.key == ord('m'):
                 FPS = 70
             elif event.key == ord('h'):
                 FPS = 120

These three options set FPS to an integer value. But notice that if the user
does not press one of the b m or h keys, FPS never gets changed so it still
has the initial value of the empty string.

     return FPS

The function is then called and FPS converted too a  integer value in the main 
game loop as follows:

     FPS = int(difficultyLevel())

However I keep getting the following error:

ValueError: invalid literal for int() with base 10: ''

There are three possible values that difficultyLevel() may return:

* if the user hits the 'h' key, it returns the integer value 120;
* if the user hits the 'm' key, it returns the integer value 70;
* if the user hits the 'b' key, it returns the integer value 30;
* otherwise, it returns the empty string.

Three of the four values are already ints and don't need to be converted;
the fourth cannot be converted because it is not a numeric string.

To fix this, change the line FPS = '' to a default integer value,
say, FPS = 30.



--
Steven
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to