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,
)
lIIIllll = [
    lIIIIlIIlIllIIllIl for lIIIIlIIlIllIIllIl in all_strategies if Classifiers.obey_axelrod(lIIIIlIIlIllIIllIl())
]
IlIIlIIIIl, llIIIlIlIllI = Action.C, Action.D
lllIIllIllIIlI = NiceTransformer()(MetaWinner)
lIlIlIlI = NiceTransformer()(MetaWinnerEnsemble)
class llllIIIIIlI(lIlIlIlI):
    IlllllIIIlIllI = "strategy"
    def __init__(IllIlIIIlI):
        lIllIIll = [
            lIIIIlIIlIllIIllIl
            for lIIIIlIIlIllIIllIl in lIIIllll
            if Classifiers["memory_depth"](lIIIIlIIlIllIIllIl()) == float("inf")
        ]
        super().__init__(lIllIIll=lIllIIll)