ARE_Dynamic_2017/ARE-DYNAMIC.py

153 lines
3.5 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
2017-03-01 11:06:44 +01:00
# chaque StratsResultats[i] est un triplet [nb_utilisations, total_ans_prisons, utilisation_detail] avec:
# i = index de la stratégie en question
2017-03-01 10:34:59 +01:00
# 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
2017-03-01 11:06:44 +01:00
#####################################
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()
2017-03-01 11:06:44 +01:00
##############################
2017-03-01 10:18:47 +01:00
### Execution des tours / jeux
2017-03-01 11:06:44 +01:00
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
2017-03-01 11:06:44 +01:00
ans_prison = (2, 2)
2017-03-01 10:51:38 +01:00
else:
# nie-avoue
2017-03-01 11:06:44 +01:00
ans_prison = (10, 0)
2017-03-01 10:51:38 +01:00
else:
if etata == 0:
# avoue-nie
2017-03-01 11:06:44 +01:00
ans_prison = (0, 10)
2017-03-01 10:51:38 +01:00
else:
# avoue-avoue
2017-03-01 11:06:44 +01:00
ans_prison = (5, 5)
resj = StratsResultas[joueur["strategie"]]
resa = StratsResultas[adversaire["strategie"]]
resj[0] += 1 # utilisation supplémentaire
resj[1] += ans_prison[0]
resa[0] += 1
resa[1] += ans_prison[1]
2017-03-01 11:09:00 +01:00
joueur["annees_de_prison"] += ans_prison[0]
adversaire["annees_de_prison"] += ans_prison[1]
2017-03-01 11:06:44 +01:00
return ans_prison
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
2017-03-01 11:06:44 +01:00
##############
2017-03-01 10:18:47 +01:00
### Simulation
2017-03-01 11:06:44 +01:00
2017-03-01 10:18:47 +01:00
def simulation():
pass
2017-03-01 11:06:44 +01:00
####################################
### Affichage et interface graphique
2017-03-01 10:18:47 +01:00
2017-03-01 11:06:44 +01:00
#####################################
2017-03-01 10:18:47 +01:00
### Fonction génératrices de matrices
2017-03-01 10:21:12 +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 11:06:44 +01:00
pass
2017-03-01 10:25:40 +01:00
2017-03-01 11:06:44 +01:00
#######################
2017-03-01 10:18:47 +01:00
### Fonction stratégies
2017-03-01 10:25:40 +01:00
def init_liste_strategies():
"""
NoneType -> NoneType
Rajoute à ListeStrategies toutes les fonctions stratégies
"""
2017-03-01 11:06:44 +01:00
pass
2017-03-01 10:21:12 +01:00