简体   繁体   中英

Score system in game. PYTHON 3.5

def LoginScreen():
    global User_Points
    User_Points = 5
    print("Welcome to Area Trainer")
    print("Please enter the username for your account")
    global user_name
    user_name = str(input())
    save = open(user_name + '.txt', 'w')
    points = open(user_name + 'Score' + '.txt', 'w+')
    points.write(str(User_Points))


    PasswordCheck= True
    while PasswordCheck:
        user_password = input("type in your password: ")
        if len(user_password) < 8:
            print("your password must be 8 characters long")
        elif not any(i.isdigit() for i in user_password):
            print("you need a number in your password")
        elif not any(i.isupper() for i in user_password):
            print("you need a capital letter in your password")
        elif not any(i.islower() for i in user_password):
            print("you need a lowercase letter in your password")
        else:
            PasswordCheck = False



def MenuTriangle():
    global User_Points
    print('''Here is a triangle with a height of 12cm and a width of 29cm
    /\     |                *Not to scale.
   /  \    |
  /    \   | 12cm
 /      \  |
 <------->
    29cm
    You must find out the area and select the correct answer from these options''')
    print('''A) 175
        B) 174
        C) 2000
        D) 199

           ''')
    user_input = input().upper()

    if user_input == "A":
            print("I'm sorry this is incorrect but you still have a chance to get 1 point!")
            MenuTriangle2()

    elif user_input == "C":
            print("I'm sorry this is incorrect but you still have a chance to get 1 point!")
            MenuTriangle2()

     elif user_input == "D":
             print("I'm sorry this is incorrect but you still have a chance to get 1 point!")
             MenuTriangle2()

    elif user_input == "B":
            print("Congratulations! You got it right, someone's a smart cookie. Here have two points!")
            reading = open(user_name + 'Score' + '.txt')
            score = reading.read()
            score = int(score) + 2
            print("Your score is", score)
            points = open('ok' + 'Score' + '.txt', 'w+')
            points.write(str(score))
            MenuStart()

def MenuStart():

    print("Welcome to the mathematical area game!")
    print("In this game you will be required to calculate the area of multiple shapes.")
    print("To do this you must know how to calculate the area of different shapes with increasing difficulty")
print('''Please select a shape you want to play,
    A) Triangle
    B) Square
    C) Circle''')
user_input = input().upper()

    if user_input == "A":
        print("You have chosen to calculate the area of a triangle!")
        MenuTriangle()

    elif user_input == "B":
        print("You have chosen to calculate the area of a square!")
        MenuSquare()

    elif user_input == "C":
        print("You have chosen the calculate the area of a circle!")
        MenuCircle()

    else:
        print("Oops! I didn't understand that >:")
        MenuStart()




LoginScreen()
MenuStart()

Hello, I am trying to make a small game where the user has to guess what the area of the shape is and if they get it right then they get 2 points however, I am using an external file to store the score of the game in but every time I play through the game by entering my name, password I will see that the value of the score will be changed to 2 after I get the answer right but then when it calls the menu function the score in the file is reset and I don't know why

CORRECT ANSWER TO SAVE PRESSING BUTTONS IS B THE ONLY OPTION AVAILABLE TO PLAY IS TRIANGLE FOR NOW. If anyone could please figure this out it would be greatly appreciated.

This is because Python automatically overrides data in a file every time it is being opened. You are opening the file multiple times by calling the function multiple times.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM