Advertisement
Guest User

Untitled

a guest
Oct 30th, 2014
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. import shelve
  2. import os
  3.  
  4.  
  5. def highscore(player_name, player_score):
  6. """
  7. Function to return the high score from our
  8. persistent storage of score records for a given
  9. person.
  10. """
  11. # Get our working directory
  12. working_dir = os.getcwd()
  13. # Create our shelf object for a player
  14. highscore_fn = os.path.join(working_dir, 'highscore.shelve')
  15. # Set our player info
  16. player = {'name': player_name, 'score': player_score}
  17.  
  18. with shelve.open(highscore_fn, writeback=True) as shelf:
  19. # Check if any records exist in the shelf
  20. if len(shelf) == 0:
  21. # Assign the shelf to an empty list
  22. shelf['player_data'] = []
  23. # Append player data to shelf
  24. shelf['player_data'].append(player)
  25. # Current high score for player
  26. high_score = player.get('score')
  27. else:
  28. # Loop through our player data list
  29. for data in shelf['player_data']:
  30. # Check to see if we have data for a player
  31. if player['name'] in data['name']:
  32. existing_record = data
  33. # Compare the player's new score against previous score
  34. if player.get('score') > existing_record.get('score'):
  35. high_score = player.get('score')
  36. # Update our record for the player
  37. existing_record.update(player)
  38. else:
  39. high_score = existing_record.get('score')
  40. else:
  41. high_score = player.get('score')
  42. shelf['player_data'].append(player)
  43.  
  44. # Return the high score
  45. return high_score
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement