import numpy as np
from axelrod.action import Action
from axelrod.classifier import Classifiers
from axelrod.player import Player
from axelrod.strategies import TitForTat
from axelrod.strategy_transformers import NiceTransformer
from ._strategies import all_strategies
from .hunter import (
    AlternatorHunter,
    CooperatorHunter,
    CycleHunter,
    DefectorHunter,
    EventualCycleHunter,
    MathConstantHunter,
    RandomHunter,
)
IlIIIIIIIllIlIIlIl = [
    lIllllIlIIIll for lIllllIlIIIll in all_strategies if Classifiers.obey_axelrod(lIllllIlIIIll())
]
IIlllIIlllIlII, lIlIlllI = Action.C, Action.D
IlIlllIlIl = NiceTransformer()(MetaWinner)
llIllllIIlI = NiceTransformer()(MetaWinnerEnsemble)
class lIllIlIIIllllIll(llIllllIIlI):
    IlIIIllIIIlllI = "strategy"
    def __init__(IllIlIlIIllIIII):
        lIlIIlIIIIlIIIlIl = [
            lIllllIlIIIll
            for lIllllIlIIIll in IlIIIIIIIllIlIIlIl
            if Classifiers["memory_depth"](lIllllIlIIIll()) <= 1
        ]
        super().__init__(lIlIIlIIIIlIIIlIl=lIlIIlIIIIlIIIlIl)
        IllIlIlIIllIIII.classifier["long_run_time"] = False