hi can someone help me i would like to run this program 3 times and would like to append the cPickle file as a high score table

garywood woodygar at sky.com
Thu Oct 9 05:02:02 EDT 2008


hi,

Can someone help me i would like to run this program 3 times or more  and would like to append the cPickle file as a high score table keeping my top scores. Right now it only records the last score thanks. 


# Trivia Challenge
# Trivia game that reads a plain text file

def open_file(file_name, mode):
    """Open a file."""
    try:
        the_file = open(file_name, mode)
    except(IOError), e:
        print "Unable to open the file", file_name, "Ending program.\n", e
        raw_input("\n\nPress the enter key to exit.")
        sys.exit()
    else:
        return the_file

def next_line(the_file):
    """Return next line from the trivia file, formatted."""
    line = the_file.readline()
    line = line.replace("/", "\n")
    return line

def next_block(the_file):
    """Return the next block of data from the trivia file."""
    category = next_line(the_file)
    
    question = next_line(the_file)
    
    answers = []
    for i in range(4):
        answers.append(next_line(the_file))
        
    correct = next_line(the_file)
    if correct:
        correct = correct[0]
        
    explanation = next_line(the_file) 

    return category, question, answers, correct, explanation

def welcome(title):
    """Welcome the player and get his/her name."""
    print "\t\tWelcome to Trivia Challenge!\n"
    print "\t\t", title, "\n"
 
def main():
    trivia_file = open_file("trivia.txt", "r")
    title = next_line(trivia_file)
    welcome(title)
    score = 0
    bonus = 0
    tries = 0

    # get first block
    category, question, answers, correct, explanation = next_block(trivia_file)
    while category:
        # ask a question
        print category
        print question
        for i in range(4):
            print "\t", i + 1, "-", answers[i]
            
            

        # get answer
        answer = raw_input("What's your answer?: ")
        tries = tries + 1
        # check answer
        if answer == correct:
            print "\nRight!",
            score += 1
            if tries == 1:
                bonus = 5
            elif tries == 2:
                bonus = bonus + 10
            elif tries == 3:
                bonus = bonus + 20
            elif tries == 4:
                bonus = bonus + 30
            elif tries == 5:
                bonus = bonus + 40
            
                
        else:
            bonus = bonus
            print "\nWrong.",
        print explanation
        print "Score:", score, "\n\n"
        

        # get next block
        category, question, answers, correct, explanation = next_block(trivia_file)

    trivia_file.close()

    print "That was the last question!"
    print "You're score is:", score, "and your bonus", bonus
    total = score + bonus
    print "for a grand total ", total
    import cPickle, shelve
    name = raw_input("what is your name")
    High_Score = [name, total]
    pickle_file = open("pickles5.dat", "w")
    cPickle.dump(High_Score, pickle_file)
    pickle_file.close()
    # to read the pickle_file
    pickle_file = open("pickles5.dat", "r")
    High_Score = cPickle.load(pickle_file)
    print High_Score, "High Scores"
main()  
raw_input("\n\nPress the enter key to exit.")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20081009/bc29a203/attachment.html>


More information about the Python-list mailing list