import random class TaskManager: def __init__(self, count): self.counters = { "right": 0, "left": 0, "neutral": 0 } self.target_count = 5 # 各タイプを実行する目標回数 def get_next_task(self): # すべてのタスクが目標回数に達しているか確認 if all(count >= self.target_count for count in self.counters.values()): return None # すべて完了 # 目標回数に達していないタスクの中からランダムに選択 available_tasks = [ task for task, count in self.counters.items() if count < self.target_count ] if not available_tasks: return None w = [1 / (self.counters["right"] + 1), 1 / (self.counters["left"] + 1), 1 / (self.counters["neutral"] + 1)] selected_task = random.choice(available_tasks) self.counters[selected_task] += 1 return selected_task def get_counts(self): return self.counters def sub_counts(self, task, amount): self.counters[task] -= amount