ARE_Dynamic_2017/ARE-DYNAMIC.py

136 lines
2.9 KiB
Python

############################
### ARE-DYNAMIC.py
###
### Auteurs:
### julianb (3670170)
### lucieho ()
### nicolasbsn ()
### constancepoulain ()
###
######################
### Importations
import numpy
######################
### Variables Globales
# Grille
Grille = numpy.ndarray()
# taille de la grille
TailleGrilleX = 15
TailleGrilleY = 15
# historique des grilles aux itérations précédentes
# utilisé durant l'affichage dynamique
HistoriqueGrilles = list()
# contient des triplets (strat, nb_utilisations, total_ans_prisons, utilisation_detail) avec:
# strat = index de la stratégie
# nb_utilisations = nombre total d'utilisations de la stratégie
# total_ans_prisons = total d'années de prisons subies par les utilisateurs de la stratégie
# utilisation_detail = une liste de paires (iter, uti) représentant le nombre d'utilisateurs à l'itération "iter"
StratsResultats = list()
# liste des stratégies (fonctions Coord^2 -> bool décidant si un joueur nie ou non en fonction de son adversaire)
ListeStratégies = list()
# liste des fonctions génératrices de grille
ListeGenGrille = list()
# génératrice de grille à utiliser
TypeGrilleInitiale = 0
"""
Types:
Coord = type(x, y)
Joueur = dict("etat", "historique_etats", "strategie", "historique_strategies", "annees_de_prison")
GrilleJoueurs = matrice2d(Joueur)
"""
### Génération de la matrice initiale
def gen_matrice_initiale():
"""
NoneType -> GrilleJoueurs
"""
fonction_gen = ListGenGrille[TypeGrilleInitiale]
return fonction_gen()
### Execution des tours / jeux
def partie1v1(joueur, adversaire):
"""
Joueur^2 -> int
Effectue une partie à deux joueurs
Renvoie: paire (prison_joueur, prison_adversaire)
"""
stratj = ListeStrategies[joueur["strategie"]]
strata = ListeStrategies[adversaire["strategie"]]
etatj = stratj(joueur, adversaire)
etata = stratj(adversaire, joueur)
# 1 = avouer
# 0 = nier
if etatj == 0:
if etata == 0:
# nie-nie
return (2, 2)
else:
# nie-avoue
return (10, 0)
else:
if etata == 0:
# avoue-nie
return (0, 10)
else:
# avoue-avoue
return (5, 5)
def partie8tours(coord_joueur):
"""
Coord ->
"""
pass
def partie_globale(mat):
"""
GrilleJoueurs -> GrilleJoueurs
"""
pass
### Simulation
def simulation():
pass
### Fonction génératrices de matrices
def init_liste_gen_grilles():
"""
NoneType -> NoneType
Rajoute à ListeGenGrille toutes les fonctions de génération de grille
"""
### Fonction stratégies
def init_liste_strategies():
"""
NoneType -> NoneType
Rajoute à ListeStrategies toutes les fonctions stratégies
"""