Newer
Older
BrainWave-Task-Visualizer / TaskManager.py
@naopon naopon on 18 Dec 1 KB update-run
  1. import random
  2.  
  3. class TaskManager:
  4. def __init__(self, count):
  5. self.counters = {
  6. "right": 0,
  7. "left": 0,
  8. "neutral": 0
  9. }
  10. self.target_count = 5 # 各タイプを実行する目標回数
  11.  
  12. def get_next_task(self):
  13. # すべてのタスクが目標回数に達しているか確認
  14. if all(count >= self.target_count for count in self.counters.values()):
  15. return None # すべて完了
  16. # 目標回数に達していないタスクの中からランダムに選択
  17. available_tasks = [
  18. task for task, count in self.counters.items()
  19. if count < self.target_count
  20. ]
  21. if not available_tasks:
  22. return None
  23. w = [1 / (self.counters["right"] + 1), 1 / (self.counters["left"] + 1), 1 / (self.counters["neutral"] + 1)]
  24. selected_task = random.choice(available_tasks)
  25. self.counters[selected_task] += 1
  26. return selected_task
  27.  
  28. def get_counts(self):
  29. return self.counters
  30. def sub_counts(self, task, amount):
  31. self.counters[task] -= amount