<s> from axelrod import Actions , Player <EOL> C , D = Actions . C , Actions . D <EOL> class Prober ( Player ) : <EOL> """<STR_LIT>""" <EOL> name = '<STR_LIT>' <EOL> classifier = { <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : float ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : set ( ) , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : False <EOL> } <EOL> def strategy ( self , opponent ) : <EOL> turn = len ( self . history ) <EOL> if turn == <NUM_LIT:0> : <EOL> return D <EOL> if turn == <NUM_LIT:1> : <EOL> return C <EOL> if turn == <NUM_LIT:2> : <EOL> return C <EOL> if turn > <NUM_LIT:2> : <EOL> if opponent . history [ <NUM_LIT:1> : <NUM_LIT:3> ] == [ C , C ] : <EOL> return D <EOL> else : <EOL> return D if opponent . history [ - <NUM_LIT:1> : ] == [ D ] else C <EOL> class Prober2 ( Player ) : <EOL> """<STR_LIT>""" <EOL> name = '<STR_LIT>' <EOL> classifier = { <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : float ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : set ( ) , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : False <EOL> } <EOL> def strategy ( self , opponent ) : <EOL> turn = len ( self . history ) <EOL> if turn == <NUM_LIT:0> : <EOL> return D <EOL> if turn == <NUM_LIT:1> : <EOL> return C <EOL> if turn == <NUM_LIT:2> : <EOL> return C <EOL> if turn > <NUM_LIT:2> : <EOL> if opponent . history [ <NUM_LIT:1> : <NUM_LIT:3> ] == [ D , C ] : <EOL> return C <EOL> else : <EOL> return D if opponent . history [ - <NUM_LIT:1> : ] == [ D ] else C <EOL> class Prober3 ( Player ) : <EOL> """<STR_LIT>""" <EOL> name = '<STR_LIT>' <EOL> classifier = { <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : float ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : set ( ) , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : False <EOL> } <EOL> def strategy ( self , opponent ) : <EOL> turn = len ( self . history ) <EOL> if turn == <NUM_LIT:0> : <EOL> return D <EOL> if turn == <NUM_LIT:1> : <EOL> return C <EOL> if turn > <NUM_LIT:1> : <EOL> if opponent . history [ <NUM_LIT:1> ] == C : <EOL> return D <EOL> else : <EOL> return D if opponent . history [ - <NUM_LIT:1> : ] == [ D ] else C <EOL> class HardProber ( Player ) : <EOL> """<STR_LIT>""" <EOL> name = '<STR_LIT>' <EOL> classifier = { <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : float ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : set ( ) , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : False <EOL> } <EOL> def strategy ( self , opponent ) : <EOL> turn = len ( self . history ) <EOL> if turn == <NUM_LIT:0> : <EOL> return D <EOL> if turn == <NUM_LIT:1> : <EOL> return D <EOL> if turn == <NUM_LIT:2> : <EOL> return C <EOL> if turn == <NUM_LIT:3> : <EOL> return C <EOL> if turn > <NUM_LIT:3> : <EOL> if opponent . history [ <NUM_LIT:1> : <NUM_LIT:3> ] == [ C , C ] : <EOL> return D <EOL> else : <EOL> return D if opponent . history [ - <NUM_LIT:1> : ] == [ D ] else C </s>
