From 6076834fc73020f1f11e4cf11b26c9f226866e8a Mon Sep 17 00:00:00 2001 From: En Yi Date: Tue, 17 Jul 2018 16:39:41 +0800 Subject: [PATCH] Add writing and replacing functions --- general/highscore.py | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/general/highscore.py b/general/highscore.py index 8e4ff18..6f4ff98 100644 --- a/general/highscore.py +++ b/general/highscore.py @@ -1,5 +1,6 @@ DIFFICULTIES = ['Very Easy', 'Easy', 'Medium', 'Hard', 'Insane'] + def read_highscore_file(file): with open(file, 'r') as f: file_data = f.read() @@ -11,16 +12,42 @@ def read_highscore_file(file): info = {} placing_info = line.split(',') info['name'] = placing_info[0] - info['time'] = placing_info[1] + info['time'] = int(placing_info[1]) diff_list.append(info) highscore_list[diff] = diff_list return highscore_list -def write_highscore_file(data): - pass +def write_highscore_file(file, data): + with open(file, 'w') as f: + for diff in DIFFICULTIES: + info = [','.join([placing_info['name'], str(placing_info['time'])]) for placing_info in data[diff]] + f.write('\n'.join(info)) + if not diff == DIFFICULTIES[-1]: + f.write('\n---\n') + + +def replace_placing(data, difficulty, name, time): + for info in data[difficulty]: + if time < info['time']: + info['name'] = name + info['time'] = time + break + + +def check_ranking(data, difficulty, name, time): + rank = -1 + for rnk, info in enumerate(data[difficulty]): + if time < info['time']: + info['name'] = name + info['time'] = time + rank = -1 + break + return rank if __name__ == "__main__": - score = read_highscore_file("./highscore.txt") \ No newline at end of file + score = read_highscore_file("./highscore.txt") + replace_placing(score, DIFFICULTIES[2], 'abcv', 12345) + write_highscore_file("./new_highscore.txt", score) \ No newline at end of file