PyGame列表索引问题高分

时间:2017-01-21 05:39:52

标签: python list sorting indexing pygame

我的PyGame的一个要求是实现一个基本的高分功能(显示名称和分数)。我的高分数据库工作得很好,因为它将“子列表”存储到整个数据库列表中:例如[['Bob',10],['Jim',17]]。我还导入itemgetter以帮助我根据“子列表”(sorted(database, key=itemgetter(1)))中的索引对列表进行排序。这使得得分最高的用户始终显示在此列表的最后。这基于以下代码:

def highscore_data(dodged,database):    
    database.append(high_score("",dodged)) #function that asks the players name
    print "*******"
    return sorted(database, key=itemgetter(1))   

我总是希望在我的游戏中显示整个数据库列表中的最后一个“子列表”(因为它总是包含最高分)。但是,每当输入新的高分时,它只会显示该分数。 这是显示高分的代码:

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

    gameDisplay.blit(background,(0,0))

    font = pygame.font.Font('freesansbold.ttf',87)
    TextSurf, TextRect = text_objects('HIGH SCORE',font, white)
    TextRect.center = ((display_width/2),(display_height/2-150))
    gameDisplay.blit(TextSurf, TextRect)
    font = pygame.font.SysFont(None, 60)
    text = font.render("TEAM: "+str(database[-1][0]), True, white)
    gameDisplay.blit(text,(display_width/2-95,display_height/2))
    font = pygame.font.SysFont(None, 60)
    text = font.render("SCORE: "+str(database[-1][1]), True, white)
    gameDisplay.blit(text,(display_width/2-95,display_height/2+50))

database[-1][0]database[-1][1]尝试获取整个列表的最后一个“子列表”([-1]),以及玩家的名字[0]和得分[1] 。一个例子是:[['Bob',10],['Jim',17]。吉姆的得分最高(因为它在大名单的末尾排序),所以这就是我要在屏幕上显示的那个。尽管如此,它总是显示最新的高分,在这种情况下将是“鲍勃”。据我所知,我认为做一个list[-1]将检索列表中的最终索引?

任何建议/帮助将不胜感激。

0 个答案:

没有答案