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) Entry(fenetre, textvariable=per2, width=3).grid(row=11, column=1)
Label(fenetre, text ="% stratégie3:").grid(row=12, column=0) Label(fenetre, text ="% stratégie3:").grid(row=12, column=0)
Entry(fenetre, textvariable=per3, width=3).grid(row=12, column=1) 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: # Types:
@ -450,6 +454,30 @@ def strat_meilleur_gain (joueur, adversaire):
nveau_etat = Grille[i][j]['etat'] nveau_etat = Grille[i][j]['etat']
return nveau_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) #INTERFACE GRAPHIQUE UTILISATEUR (GUI)
###################### ######################
@ -481,6 +509,7 @@ per1=DoubleVar()
per2=DoubleVar() per2=DoubleVar()
per3=DoubleVar() per3=DoubleVar()
per4=DoubleVar() per4=DoubleVar()
per5=DoubleVar()
def affichage_fenetre_infos(): def affichage_fenetre_infos():
""" """
@ -517,7 +546,7 @@ def affichage_combobox():
""" """
global Strat global Strat
Label(fenetre, text="Stratégie n°").grid(row=5, column=0, sticky=E) 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(): def Interface():
""" """
@ -563,7 +592,7 @@ def fermeture():
""" """
global ListePourcents 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() fenetre.quit()
############################################################################### ###############################################################################
@ -588,8 +617,8 @@ def init_complete():
ListeStrategies.append(strat_toujours_avouer) # 1 ListeStrategies.append(strat_toujours_avouer) # 1
ListeStrategies.append(strat_precedent_adversaire) # 2 ListeStrategies.append(strat_precedent_adversaire) # 2
ListeStrategies.append(strat_principal_adversaire) # 3 ListeStrategies.append(strat_principal_adversaire) # 3
# ListeStrategies.append(strat_altern) # ListeStrategies.append(strat_tit_for_tat) # 4
# ListeStrategies.append(strat_meilleur_gain) # ListeStrategies.append(strat_tit_for_tat_sorry) # 5
global Grille global Grille
global StratsResultats global StratsResultats