Highscore?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Yggdrasil

Mittwoch 16. Juni 2004, 19:51

Und gleich noch ne Frage....
Wie kann ich einen Highscore für ein einfaches Matheübungsprogramm schreiben? Geht das mit open?
Nur versteh ich das mit readline() nicht. :(
Vielen Dank
NOTZE
User
Beiträge: 106
Registriert: Mittwoch 21. Januar 2004, 20:28

Mittwoch 16. Juni 2004, 19:53

Yggdrasil hat geschrieben:Und gleich noch ne Frage....
Wie kann ich einen Highscore für ein einfaches Matheübungsprogramm schreiben? Geht das mit open?
Nur versteh ich das mit readline() nicht. :(
Vielen Dank
Und ich versteh deine frage nicht :?: :?:
Yggdrasil

Mittwoch 16. Juni 2004, 20:00

Oh...tut mir leid, war wohl ein bischen wirr.
Ich hab ein kleines Rechenübungsprogramm geschrieben bei dem du Punkte bekommst. (Je schneller du bist usw. desto mehr)
Ich würd jetzt gerne meinen Punktestand in einen Highscore eintragen können.
Es gab da auf einer Seite so etwas ähnliches, und da wurde es mit open(Test.txt,r) und readlines() oder so ähnlich gemacht.
Es war aber zu kurz gefasst als dass ich es verstanden hätte.
Kann mir jemand nen Tipp geben?
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Mittwoch 16. Juni 2004, 20:30

Hi Yggdrasil,

open ist veraltet, dafür gibts seit 2.0 file. Ich gehe mal davon aus, daß du die Scores intern in einem Dictionary hast.

schreiben einer Datei

Code: Alles auswählen

score = {"Hans" : 100, "Frieda" : 120, "Max" : 80}
f = file("score.txt", "w") # Datei öffnen
for key, value in score.items(): # Schlüssel-Werte-Paare aus Dictionary lesen
    f.write("%s\t%i\n" % (key, value)) # Als String in Datei schreiben
f.close() # Datei schließen
lesen einer Datei

Code: Alles auswählen

score = {}
f = file("score.txt", "r") # Datei öffnen
for line in f: # Jede Zeile der Datei lesen
    data = line.strip().split("\t") # Whitespaces und "\n" am Ende löschen und am "\t" aufsplitten
    score[data[0]] = int(data[1]) # Daten ins Dictionary score einfügen
f.close() # Datei schließen
print score # zum Testen
Gruß

Dookie
Der Gast

Mittwoch 16. Juni 2004, 20:32

Ich vermute mal, dass du das hier meinst, aber so ganz klar ist mir dein Problem auch nicht.

Hier mal ein Beispiel, wie du einen Wert in eine Datei schreibst:

Code: Alles auswählen

file = open("C:/Test.txt", "w")
highscore = "5"
file.write(highscore)
file.close()
Um den entsprechenden Wert wieder auszulesen, würde ich es dann so machen:

Code: Alles auswählen

file = open("C:/Test.txt")
highscore = file.readline()
file.close()
Vielleicht habe ich ja damit den Nagel auf den Kopf getroffen ;-)

MfG
Der Gast
Gast

Mittwoch 16. Juni 2004, 21:20

Danke Dookie.....ich glaub ich bin einfach zu doof :lol:
Was meinst du mit: in einem internen Dictionary?
Ich hab die Punkte einfach als eine Variable definiert...
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Mittwoch 16. Juni 2004, 21:28

ich dachte du hast da mehrere Leute, die das Programm auf dem gleichen Rechner verwenden. Dann könntest Du die Scores für jeden in einem Dictionary wie bei meinem Beispiel gezeigt speichern. wenns nur eine Variable ist, ists noch einfacher.

Code: Alles auswählen

def write_score(score):
    f = file("score.txt","w")
    f.write(str(score))
    f.close()

def read_score():
    f = file("score.txt", "r")
    score = int(f.read()) # falls score eine Fliesskommazahl ist score = float(f.read())
    f.close()
    return score

Gruß

Dookie
Grögh de Helsen

Freitag 25. Juni 2004, 12:56

Dookie hat geschrieben:open ist veraltet, dafür gibts seit 2.0 file.
>>> open is file
True
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Freitag 25. Juni 2004, 15:01

Hi. Das denkt man so... in Wirklichkeit ist es umgekehrt: die Funktion open gibts nicht mehr und open ist nur noch ein Alias für die Klasse file. Diesen Alias gibt es aber auch nur wegen Abwärtskompatibilität und er kann in späteren Versionen wegrationalisiert werden. So kann so nämlich von file eigene Klassen ableiten, von open in früheren Pythonversionen nicht.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 29. Juni 2004, 17:59

Also wenn dann kommt erstmal DeprecationWarning, bevor es rausgenommen wird.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten