2016-04-14 84 views
0

我正在製作一個類似危險的遊戲,我正在嘗試在最後添加高分檔案。理想情況下,我希望它是程序要求你提供姓名的地方,然後將你的名字和你擁有的積分數量(在整個遊戲中累計和加在一起)放到一個新文件中,並從最高金額點數最低。然後它會將這個文件打印到python上,以便查看所有高分。這將打印這樣的事情...如何在python中創建並打印高分檔案

約翰·史密斯,100
喬·埃裏克森,80
吉姆·鮑勃,40

這裏是我迄今爲止...

print "That's the game folks! You finished with a final score of...", points, 'points! Good game, you made the high score list! What is your name?' 
name = raw_input() 
h = open('highscores.txt', 'w') 
h.write(name) 
h.write(points) 
f.close() 
print (highscores.txt) 
+0

文本文件必須被排序,並且它必須被截斷爲例如前10名,還是我們可以簡單地將每個新分數附加到文件並僅顯示前10位?否則我們不得不在每次更改時重寫它。 –

+0

FWIW,你的文件句柄從'h'奇蹟般地改變爲'f'。 :) –

+0

順便說一句,你不能直接寫一個數字到一個文件,你需要把它轉換成一個字符串。 –

回答

0

看看Python的ConfigParser module - 它允許你管理一個簡單的配置文件,而不必關心它們的格式。

文件的格式是這樣

[section1] 
    variable=value 

    [section2] 
    variable2=value2 

    ... 

,所以你可以有名稱和選項部分與像:

#config.cfg file 
    [John Smith] 
    highscore = 100 

    [Joe Ericson] 
    highscore = 80 

那麼你可以讀,寫和迭代球員用這樣一個簡單的代碼

import ConfigParser, os 

    config = ConfigParser.ConfigParser() 
    config.readfp(open('config.cfg')) 

    for section in config.sections(): 
     print section, ", ", config.get(section, "highscore") 

當然你也可以使用

RawConfigParser.add_section(section) 
    RawConfigParser.set(section, option, value) 

方法寫入新的值到配置文件。您的數據在應用程序生命週期結束後也將保持不變。

-2

您可以將高分直接存儲在您的python文件中作爲全局變量。新遊戲結束後,您可以查看當前的高分,並在當前分數較高時查看。 你現在正在做什麼看起來像一個困難的解決方案,因爲你不能直接在文本文件中計算任何東西,所以你將不得不創建一個單獨的python程序來讀取測試文件,爭取分數和找到最高的分數

+4

儘管Python腳本修改自己的源碼當然是可行的,但這通常不是**好的設計。 –