importrandom
deffatigue_distribution(tasks,fatigue_limit):
sorted_tasks=sorted(tasks,key=lambdax:x['difficulty']x['duration'])
fatigue_used=0
selected_tasks=
fortaskinsorted_tasks:
iffatigue_used+task['difficulty']task['duration']<= fatigue_limit:
selected_tasks.append(task)
fatigue_used+=task['difficulty']task['duration']
returnselected_tasks
importtime
deffatigue_recovery(fatigue_value,recovery_rate):
whilefatigue_value>0:
time.sleep(3600)每小时恢复
fatigue_value=recovery_rate
print(f"疲劳值恢复:{fatigue_value}"
importdatetime
classFatigueManager:
def__init__(self,fatigue_limit):
self.fatigue_limit=fatigue_limit
self.fatigue_value=0
defadd_task(self,difficulty,duration):
ifself.fatigue_value+difficultyduration<= self.fatigue_limit:
self.fatigue_value+=difficultyduration
print(f"任务完成,疲劳值:{self.fatigue_value}"else:
print("疲劳值上限"defrecover(self,recovery_rate):
self.fatigue_value=recovery_rate
print(f"疲劳值恢复,当前值:{self.fatigue_value}"