I do know how to pick 'em...

The advantage of having your Tile class (Block in my case) subclass pygame.sprite.Sprite is that you can then use spritecollide with a sprite the size of the screen to get all of the sprites you need to render! It does raise some confusion about coordinates, but I think I can sort that out.