2017-04-18 1 views
0

私はカードゲームシミュレータを作成しています。プレー中、私は異なるプレイヤーに異なる戦略を持たせたい。私の考えは、指定されたエージェントに対して2つの関数をインポート可能なものとして指定することです。これらの関数は同じシグネチャを持ちます。私はクラスと継承でこれを行う方法を知っていますが、私はこのプロジェクトを完全に機能的にコーディングしようとしています。ここで私はクラスでそれを行うとしたら、私が持っているものです:モジュールは機能グループへの道になるので、私はこれまでと考えることができますクラスなしで単一モジュール内に同じ名前の関数グループを作成する

class Agent: 
    def __init__(self,position): 
    self.pos = position 

    def flip_two(self,gs): 
    pass 

    def regular_move(self,gs): 
    pass 

class Random_Agent(Agent): 
    def flip_two(self,gs): 
    #some code that alters gs randomly 

    def regular_move(self,gs): 
    #some code that alters gs randomly 

class etc_Agents(Agent): 
    . 
    . 
    . 

最良の答えは、新しいファイルに各エージェントを置くことです。

ありがとうございました!

答えて

0

あなたはグループ関連の機能を希望する場合は、そのように辞書にそれらを置くことができます:

options = { 
    'a' : {'sameName' : lambda x: x*2}, 
    'b' : {'sameName' : lambda x: x**2} 
    } 
print(options['a']['sameName'](5)) 
print(options['b']['sameName'](5)) 
関連する問題