Error in Simple PyGame
Question: I was trying to make a game using Python, so this is the code:

    
    
    # 1 - Import library
    import pygame
    from pygame.locals import *
    
    # 2 - Initialize the game
    pygame.init()
    width, height = 640, 480
    screen=pygame.display.set_mode((width, height))
    
    # 3 - Load images
    player = pygame.image.load("resources/images/dude.png")
    grass = pygame.image.load("resources/images/grass.png")
    castle = pygame.image.load("resources/images/castle.png") 
    
    # 4 - keep looping through
    while 1:
        # 5 - clear the screen before drawing it again
        screen.fill(0)
        # 6 - draw the screen elements
        for x in range(width/grass.get_width()+1):
            for y in range(height/grass.get_height()+1):
              screen.blit(grass,(x*100,y*100))
           screen.blit(castle,(0,30))
           screen.blit(castle,(0,135))
           screen.blit(castle,(0,240))
           screen.blit(castle,(0,345 ))
           screen.blit(player, (100,100))
           # 7 - update the screen
           pygame.display.flip()
           # 8 - loop through the events
           for event in pygame.event.get():
           # check if the event is the X button 
            if event.type==pygame.QUIT:
             # if it is quit the game
             pygame.quit() 
              exit(0)
    

This is the error I am getting, but I can't figure out how to solve it:

    
    
    Traceback (most recent call last):
      File "C:/Python32/Game 1/game.py", line 19, in <module>
        for x in range(width/grass.get_width()+1):
    TypeError: 'float' object cannot be interpreted as an integer
    


Answer: The range function requires integers not floats or strings, floats can be
converted to integers by using the `int()` function

So instead of:

    
    
    for x in range(width/grass.get_width()+1):
    

use:

    
    
    for x in range(int(width/grass.get_width()+1)):
    

eg:

    
    
    print int(5.145)
    >>> 5
    

