Een eerstejaars project voor de Hogeschool Utrecht. Een Python-gebaseerd platform voor mini-games, inclusief user management en scoresystemen.
Nan is een modulaire command-line applicatie die verschillende mini-games (zoals Galgje en Guesser) host. Het systeem bevat een robuuste login- en accountcreatie module die gebruik maakt van JSON-bestanden voor persistente dataopslag.
Tijdens dit eerstejaars project aan de HU heb ik de fundamenten van Python onder de knie gekregen. Ik heb geleerd hoe ik gestructureerde code schrijf, hoe ik omga met externe data via JSON, en hoe ik complexe game-logica kan implementeren in een CLI-omgeving.
De kern van de applicatie is het account-systeem. Dit systeem valideert inloggegevens en maakt automatisch nieuwe accounts aan als de gebruiker nog niet bestaat.
def user_login_create_json(user_name, user_password):
file_path = 'account.json'
with open(file_path, 'r+') as json_file:
data = json.load(json_file)
accounts = data["accountDetails"]
for account in accounts:
if account["username"] == user_name and account["password"] == user_password:
print("User found logging in")
choose_game(True, user_name)
return
print("User not found creating account")
new_entry = {
"username": user_name,
"password": user_password
}
accounts.append(new_entry)
# ... persistent storage logic
De Guesser game implementeert verschillende moeilijkheidsgraden, scoresystemen en feedback-algoritmes om de speler te adviseren over hun niveau.
def calculate_score(difficulty_level, user_tries):
score = (user_max_tries(difficulty_level) - user_tries) * difficulty_level
print("Your score is: " + str(score))
def calculate_difficulty(user_score):
low_score = 5
normal_score = 12
if user_score < low_score:
return print("Try a lower difficulty")
elif low_score <= user_score <= normal_score:
return print("Keep this difficulty")
else:
return print("Advies: je kunt een hogere moeilijkheidsgraad aan!")