maroph icon

Simple Maths Game with highscore list

maroph | PRO | 11/04/19 03:56:54 PM UTC | 0 ⭐ | 320 👁️ | Never ⏰ | []
Python |

2.89 KB

|

None

|

0 👍

/

0 👎

#!/usr/bin/env python3
#
# file: maths-game2.py
#
# run on a Raspberry PI:
# chmod u+x maths-game2.py
# ./maths-game2.py
import sys
 
try:
    # print the current highscore data
    with open("highscore2.txt", "r") as f:
        print("The 10 highest scores previously were")
        highscore = f.read()
        print(highscore)
except:
    # ups - highscore file doesn't exist, so we create a new empty file
    print("Creating a new highscore file (highscore2.txt)")
    with open('highscore2.txt', 'w') as f:
        pass
 
name = ''
while name == '':
    # we need a name for the highscore
    name = input("Your name (or q to quit the game):>> ")
    if name == 'q':
        sys.exit(0)
 
resp = "y"
while resp == str("y") or resp == str(""):
    # we use 2 arrays: 1 for the score and one for the name
    # this to arrays are related by the index
    # score[0] and names[0] address the first (highest score) entry
    # in the highscore
    scores = []
    names = []
    with open("highscore2.txt", 'r') as file:
        for line in file:
            line = line.strip("\n")
            line = line.split(" ")
            names.append(line[0])
            scores.append(int(line[1]))
 
    score = 0
    print("Welcome to the Maths Quiz")
    print("Can you answer three questions and score maximum points?")
 
    print("Question 1: What is the product of 2x2x2?")
    answer = int(input("Your answer :>> "))
    if answer == 8:
        print("Correct")
        score = score + 1
        print("Your score is ", score)
    else:
        print("Incorrect, the answer is 8")
        print("Your score is ", score)
 
    print("Question 2: What is the product of 6x7?")
    answer = int(input("Your answer :>> "))
    if answer == 42:
        print("Correct")
        score = score + 1
        print("Your score is ", score)
    else:
        print("Incorrect, the answer is 42")
        print("Your score is ", score)
 
    print("Question 3: What is the product of 17+4?")
    answer = int(input("Your answer :>> "))
    if answer == 21:
        print("Correct")
        score = score + 1
        print("Your score is ", score)
    else:
        print("Incorrect, the answer is 21")
        print("Your score is ", score)
 
    # this round of the game is finished
    # now we compare the current score with the
    # available highscore data
    position = 0
    for compare_score in scores:
        if score <= compare_score:
            position = position + 1
    scores.insert(position, score)
    names.insert(position, name)
    scores = scores[:10]
    names = names[:10]
 
    print("HIGHSCORES")
    with open("highscore2.txt", 'w') as file:
        for i in range(len(scores)):
            file.write(names[i] + " " + str(scores[i]) + "\n")
            print(names[i] + " " + str(scores[i]))
    print("\n")
 
    resp = input("New try ? [y/n]:>> ")

Comments