ARE_Dynamic_2017/ARE-DYNAMIC.py

136 lines
2.9 KiB
Python
Raw Normal View History

2017-03-01 10:03:21 +01:00
############################
### ARE-DYNAMIC.py
###
### Auteurs:
### julianb (3670170)
### lucieho ()
### nicolasbsn ()
### constancepoulain ()
###
2017-03-01 10:56:58 +01:00
######################
### Importations
import numpy
2017-03-01 10:34:59 +01:00
######################
2017-03-01 10:03:21 +01:00
### Variables Globales
2017-03-01 10:34:59 +01:00
2017-03-01 10:56:58 +01:00
# Grille
Grille = numpy.ndarray()
2017-03-01 10:34:59 +01:00
# taille de la grille
2017-03-01 10:03:21 +01:00
TailleGrilleX = 15
TailleGrilleY = 15
2017-03-01 10:34:59 +01:00
# historique des grilles aux itérations précédentes
# utilisé durant l'affichage dynamique
2017-03-01 10:39:48 +01:00
HistoriqueGrilles = list()
2017-03-01 10:34:59 +01:00
# 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"
2017-03-01 10:03:21 +01:00
StratsResultats = list()
2017-03-01 10:34:59 +01:00
# liste des stratégies (fonctions Coord^2 -> bool décidant si un joueur nie ou non en fonction de son adversaire)
2017-03-01 10:18:47 +01:00
ListeStratégies = list()
2017-03-01 10:34:59 +01:00
# liste des fonctions génératrices de grille
2017-03-01 10:25:40 +01:00
ListeGenGrille = list()
2017-03-01 10:34:59 +01:00
# génératrice de grille à utiliser
2017-03-01 10:25:40 +01:00
TypeGrilleInitiale = 0
2017-03-01 10:18:47 +01:00
2017-03-01 10:34:59 +01:00
"""
Types:
Coord = type(x, y)
2017-03-01 10:39:48 +01:00
Joueur = dict("etat", "historique_etats", "strategie", "historique_strategies", "annees_de_prison")
2017-03-01 10:34:59 +01:00
GrilleJoueurs = matrice2d(Joueur)
"""
2017-03-01 10:18:47 +01:00
### Génération de la matrice initiale
def gen_matrice_initiale():
"""
2017-03-01 10:25:40 +01:00
NoneType -> GrilleJoueurs
2017-03-01 10:18:47 +01:00
"""
2017-03-01 10:25:40 +01:00
fonction_gen = ListGenGrille[TypeGrilleInitiale]
2017-03-01 10:18:47 +01:00
return fonction_gen()
### Execution des tours / jeux
2017-03-01 10:51:38 +01:00
def partie1v1(joueur, adversaire):
2017-03-01 10:18:47 +01:00
"""
2017-03-01 10:51:38 +01:00
Joueur^2 -> int
Effectue une partie à deux joueurs
Renvoie: paire (prison_joueur, prison_adversaire)
2017-03-01 10:18:47 +01:00
"""
2017-03-01 10:51:38 +01:00
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)
2017-03-01 10:18:47 +01:00
def partie8tours(coord_joueur):
"""
Coord ->
"""
pass
def partie_globale(mat):
"""
2017-03-01 10:25:40 +01:00
GrilleJoueurs -> GrilleJoueurs
2017-03-01 10:18:47 +01:00
"""
pass
### Simulation
def simulation():
pass
### Fonction génératrices de matrices
2017-03-01 10:21:12 +01:00
2017-03-01 10:34:59 +01:00
2017-03-01 10:25:40 +01:00
def init_liste_gen_grilles():
"""
NoneType -> NoneType
Rajoute à ListeGenGrille toutes les fonctions de génération de grille
"""
2017-03-01 10:18:47 +01:00
### Fonction stratégies
2017-03-01 10:34:59 +01:00
2017-03-01 10:25:40 +01:00
def init_liste_strategies():
"""
NoneType -> NoneType
Rajoute à ListeStrategies toutes les fonctions stratégies
"""
2017-03-01 10:21:12 +01:00