Newer
Older
BrainWave-Task-Visualizer / TaskManager.py
@naopon naopon on 18 Dec 1 KB update-run
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