35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from enum import Enum
|
|
import random
|
|
|
|
class Estrategia(Enum):
|
|
Neutro = 0
|
|
Tit4Tat = 1
|
|
Vingativo = 2
|
|
|
|
|
|
class Agente():
|
|
def __init__(self):
|
|
self.estrategia = Estrategia(random.randint(0,Estrategia.__len__()-1))
|
|
#self.estrategia = random.choice(Estrategia._member_names_)
|
|
# factores da estrategia (probabilidade): -1...0...1
|
|
# amabilidade -> não desertar a menos que o adversário deserte (-1 -> desertar sempre; 1 -> nunca desertar)
|
|
self.amabilidade = 0
|
|
# retaliação -> retaliar quando um adversário deserta (-1 -> nunca retaliar; 1 -> retaliar sempre)
|
|
self.retaliação = 0
|
|
# perdao -> perdoar um adversário desertor, assim que este deixa de desertar (-1 -> nunca perdoar; 1 -> perdoar sempre)
|
|
self.perdao = 0
|
|
# coerencia -> ser coerente na estrategia, evitar aleatoriedade (-1 -> aletório negativo; 0 -> não aleatorio; 1 -> aleatorio positivo)
|
|
self.coerencia = 0
|
|
|
|
agente = Agente()
|
|
|
|
print(agente.estrategia)
|
|
|
|
|
|
# lista_estrategias = Estrategia._member_map_
|
|
# lista_estrategias = Estrategia.__dict__
|
|
|
|
# for estrategia in lista_estrategias:
|
|
# print(estrategia)
|
|
|
|
#print(lista_estrategias) |