From 74a8e62b392f350a67416c8810fc64411ab03612 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Sat, 31 Aug 2024 11:59:58 +0100 Subject: [PATCH] =?UTF-8?q?aderir=20a=20padr=C3=A3o=20de=20c=C3=B3digo=20p?= =?UTF-8?q?ython?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dilema_prisioneiro.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/dilema_prisioneiro.py b/dilema_prisioneiro.py index 4e62ff3..4c008a4 100644 --- a/dilema_prisioneiro.py +++ b/dilema_prisioneiro.py @@ -1,6 +1,7 @@ from enum import Enum import random + class Estrategia(Enum): Neutro = 0 Tit4Tat = 1 @@ -11,22 +12,27 @@ class Estrategia(Enum): class Agente(): def __init__(self): # definir estrategia aleatoriamente - self.estrategia = Estrategia(random.randint(0,Estrategia.__len__()-1)) + self.estrategia = Estrategia(random.randint(0, Estrategia.__len__()-1)) self.definir_fatores_estrategia() # identificador de agente self.id_agente = id(self) # factores da estrategia (probabilidade): 0...1 - # amabilidade -> não desertar a menos que o adversário deserte (0 -> desertar sempre; 1 -> nunca desertar) + # amabilidade -> não desertar a menos que o adversário deserte + # (0 -> desertar sempre; 1 -> nunca desertar) amabilidade = 0 - # retaliação -> retaliar quando um adversário deserta (0 -> nunca retaliar; 1 -> retaliar sempre) + # retaliação -> retaliar quando um adversário deserta + # (0 -> nunca retaliar; 1 -> retaliar sempre) retaliação = 0 - # perdao -> perdoar um adversário desertor, assim que este deixa de desertar (0 -> nunca perdoar; 1 -> perdoar sempre) + # perdao -> perdoar um adversário desertor, assim que este deixa de + # desertar + # (0 -> nunca perdoar; 1 -> perdoar sempre) perdao = 0 - # coerencia -> ser coerente na estrategia, evitar aleatoriedade (0 -> nunca coerente; 1 -> sempre coerente) + # coerencia -> ser coerente na estrategia, evitar aleatoriedade + # (0 -> nunca coerente; 1 -> sempre coerente) coerencia = 0 - # definir factores de estrategia com base na estrategia + def definir_fatores_estrategia(self): match self.estrategia: case Estrategia.Neutro: @@ -50,7 +56,6 @@ class Agente(): self.perdao = 0.5 self.coerencia = 0.5 - agente = Agente() @@ -68,4 +73,4 @@ print(f'\tCOerência: {agente.coerencia}') # for estrategia in lista_estrategias: # print(estrategia) -#print(lista_estrategias) \ No newline at end of file +# print(lista_estrategias)