2016-04-14 12 views
0

Jeopardy benzeri bir oyun yapıyorum ve sonunda yüksek bir puan dosyası eklemeye çalışıyorum. İdeal olarak, programın sizin adınıza soracağı yer olmasını isterim ve sonra adınızı ve sahip olduğunuz puan miktarını (oyunda bir araya getirilmiş ve bir araya getirilmiş) yeni bir dosyaya koyar ve en yüksek miktardan sipariş verir en düşük puan. Tüm bu yüksek puanları görebilmek için bu dosyayı python'a yazdı. Bu ... İştePython'da yüksek skorlu bir dosya nasıl oluşturulur ve yazdırılır

40 Ben bugüne kadar ne olduğunu ...

John Smith, 100
Joe Ericson, 80
Jim Bob böyle bir şey basacaktır

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

metin dosyası sipariş edilmeli ve örn. En iyi 10, ya da sadece her yeni skoru dosyaya ekleyebilir ve sadece ilk 10'u gösterebilir miyiz? Else, her değişiklik için tekrar yazmamız gerekecek. –

+0

FWIW, dosya tanıtıcınız sihirli olarak "h" ile "f" arasında değişir. :) –

+0

BTW, bir dosyaya doğrudan bir sayı yazamazsınız, bir dizeye dönüştürmeniz gerekir. –

cevap

0

Python'un ConfigParser module'a bir göz atın - basit bir dosyayı, biçimleriyle ilgilenmeden yapılandırma ile yönetmenizi sağlar. Eğer, okuma, yazma ve oyuncuların adımlayabilirsiniz sonra

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

    [Joe Ericson] 
    highscore = 80 

:

Dosyanın formatı

[section1] 
    variable=value 

    [section2] 
    variable2=value2 

    ... 

böylece gibi En iyi dereceler ile Adları ve seçenekler ile bölümler olabilir gibidir böyle basit bir kodla

import ConfigParser, os 

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

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

Tabii ki

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

yöntemler kullanılarak yapılandırma dosyalarına yeni değerler yazabilirsiniz. Uygulama ömrü sona erdikten sonra verileriniz kalıcı olacaktır.

-2

Yüksek puanları doğrudan python dosyanızda genel değişkenler olarak depolayabilirsiniz. Yeni bir oyun bittikten sonra mevcut yüksek puanı kontrol edebilir ve mevcut skor daha yüksekse bir tanesini çarptırabilirsiniz. Şimdi yaptığınız şey, bir metin dosyasında doğrudan bir şey hesaplayamayacağınız için zor bir çözüm gibi görünüyor, bu nedenle test dosyasını okumak, puanları karıştırmak ve en yüksek puanları bulmak için ayrı bir python programı oluşturmanız gerekecek.

+4

Bir Python betiğinin kendi kaynağını değiştirmesi kesinlikle _possible_ iken, bu genellikle iyi bir tasarım değil **. –

İlgili konular