First Commit
This commit is contained in:
Executable
+62
@@ -0,0 +1,62 @@
|
||||
import random
|
||||
|
||||
|
||||
class User:
|
||||
def __init__(self, xp_formula, level_formula):
|
||||
self.level = 1
|
||||
self.xp = 0
|
||||
self.xp_to_next_level = xp_formula(
|
||||
self.level
|
||||
) # XP needed to reach the next level
|
||||
self.xp_formula = xp_formula
|
||||
self.level_formula = level_formula
|
||||
|
||||
def earn_xp(self, amount):
|
||||
self.xp += amount
|
||||
print(f"You earned {amount} XP! Total XP: {self.xp}")
|
||||
|
||||
# Check for level up
|
||||
while self.xp >= self.xp_to_next_level:
|
||||
self.level_up()
|
||||
|
||||
def level_up(self):
|
||||
self.xp -= self.xp_to_next_level
|
||||
self.level += 1
|
||||
self.xp_to_next_level = self.xp_formula(
|
||||
self.level
|
||||
) # Calculate next level requirement
|
||||
print(
|
||||
f"Congratulations! You've reached Level {self.level}! XP to next level: {self.xp_to_next_level}"
|
||||
)
|
||||
|
||||
|
||||
def simulate_xp_gain(user, num_messages, xp_per_message):
|
||||
for _ in range(num_messages):
|
||||
user.earn_xp(xp_per_message())
|
||||
|
||||
|
||||
def main():
|
||||
# Define your formulas here
|
||||
def xp_formula(level):
|
||||
return int(100 * (1.5 ** (level - 1))) # Example: 100, 150, 225, 338, ...
|
||||
|
||||
def random_xp_per_message():
|
||||
return random.randint(1, 5) # Random XP between 1 and 10
|
||||
|
||||
user = User(xp_formula, random_xp_per_message)
|
||||
|
||||
while True:
|
||||
num_messages = input("Enter the number of messages (or 'quit' to exit): ")
|
||||
|
||||
if num_messages.lower() == "quit":
|
||||
break
|
||||
|
||||
if num_messages.isdigit():
|
||||
num_messages = int(num_messages)
|
||||
simulate_xp_gain(user, num_messages, random_xp_per_message)
|
||||
else:
|
||||
print("Please enter a valid number.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user