Update ARE-DYNAMIC.py

This commit is contained in:
ConstancePoulain 2017-04-23 10:45:08 +02:00 committed by GitHub
parent 2efb8dbaeb
commit 8b8eda50e0
1 changed files with 33 additions and 4 deletions

View File

@ -97,6 +97,10 @@ def saisir_les_pourcentages():
Entry(fenetre, textvariable=per2, width=3).grid(row=11, column=1)
Label(fenetre, text ="% stratégie3:").grid(row=12, column=0)
Entry(fenetre, textvariable=per3, width=3).grid(row=12, column=1)
Label(fenetre, text ="% stratégie4:").grid(row=13, column=0)
Entry(fenetre, textvariable=per4, width=3).grid(row=13, column=1)
Label(fenetre, text ="% stratégie5:").grid(row=14, column=0)
Entry(fenetre, textvariable=per5, width=3).grid(row=14, column=1)
#####################################
# Types:
@ -450,6 +454,30 @@ def strat_meilleur_gain (joueur, adversaire):
nveau_etat = Grille[i][j]['etat']
return nveau_etat
def strat_tit_for_tat(joueur, adversaire):
"""
coopérer tant que l'autre joueur est coopératif, à la première trahison
reproduire à chaque fois le comportement de l'adversaire du coup précédent
"""
for i in adversaire['historique_etats']:
if i == 1:
return adversaire['historique_etats'][len(adversaire['historique_etats'])-1]
return 0
def strat_tit_for_tat_sorry(joueur, adversaire):
"""
coopérer tant que l'autre joueur est coopératif, à la première trahison
reproduire à chaque fois le comportement de l'adversaire du coup précédent,
avec en plus une proba de 5% de coopérer après une défection : un peu d'espoir !
"""
for i in adversaire['historique_etats']:
if i == 1:
tirage = random.random()
if tirage <= 0.05:
return 0
return adversaire['historique_etats'][len(adversaire['historique_etats'])-1]
return 0
######################
#INTERFACE GRAPHIQUE UTILISATEUR (GUI)
######################
@ -481,6 +509,7 @@ per1=DoubleVar()
per2=DoubleVar()
per3=DoubleVar()
per4=DoubleVar()
per5=DoubleVar()
def affichage_fenetre_infos():
"""
@ -517,7 +546,7 @@ def affichage_combobox():
"""
global Strat
Label(fenetre, text="Stratégie n°").grid(row=5, column=0, sticky=E)
Combobox(fenetre, textvariable=Strat, values=(0, 1, 2, 3), width=3).grid(row=5, column=1, sticky=W)
Combobox(fenetre, textvariable=Strat, values=(0, 1, 2, 3, 4, 5), width=3).grid(row=5, column=1, sticky=W)
def Interface():
"""
@ -563,7 +592,7 @@ def fermeture():
"""
global ListePourcents
ListePourcents=[per0.get(), per1.get(), per2.get(), per3.get(), per4.get()]
ListePourcents=[per0.get(), per1.get(), per2.get(), per3.get(), per4.get(), per5()]
fenetre.quit()
###############################################################################
@ -588,8 +617,8 @@ def init_complete():
ListeStrategies.append(strat_toujours_avouer) # 1
ListeStrategies.append(strat_precedent_adversaire) # 2
ListeStrategies.append(strat_principal_adversaire) # 3
# ListeStrategies.append(strat_altern) #
# ListeStrategies.append(strat_meilleur_gain) #
ListeStrategies.append(strat_tit_for_tat) # 4
ListeStrategies.append(strat_tit_for_tat_sorry) # 5
global Grille
global StratsResultats