Пример #1
0
def getIndication(ficheIndices, numJoueur, numCategorie, numCarte):
    """
    retourne l'indication que l'on possède concernant le joueur numJoueur et la carte numCarte,numCategorie
    paramètres: ficheIndices la fiche considérée
                numJoueur le numéro du joueur qui a montré ou qui a indiqué ne pas avoir la carte
                numCarte le numéro de la carte concernée
                numCategorie le numéro de la catégorie de la carte concernée
    resultat une des trois indications POSSEDE, NEPOSSEDEPAS ou NESAISPAS
    """
    return ficheIndices[jeucarte.getCarteParNum(getJeuCartes(ficheIndices),
                                                numCategorie,
                                                numCarte)][numJoueur]
Пример #2
0
def estDansLeMystere(ficheIndices, numCarte, numCategorie):
    """
    indique si on est sûr que la carte est dans le mystère
    paramètres: ficheIndices la fiche considérée
                numCarte le numéro de la carte concernée
                numCategorie le numéro de la catégorie de la carte concernée
    résultat un booléen indiquant si on sait définitivement que la carte n'appartient à personne
    """
    est_sur = estConnue(ficheIndices, numCarte, numCategorie)
    if est_sur:
        if ficheIndices[jeucarte.getCarteParNum(getJeuCartes(ficheIndices),
                                                numCategorie,
                                                numCarte)][0] == '-':
            return True
    return False
Пример #3
0
def listeCartesJoueur(ficheIndices, categorie, numJoueur):
    """
    retourne la liste des numéros de cartes d'une catégorie que l'on sait possédées par le joueur numJoueur
    paramètres: ficheIndices la fiche considérée
                numCategorie le numéro de la catégorie cherchée
                numJoueur le joueur dont on recherche les cartes
    résultat la liste des numéros cartes de la catégorie pour lesquelles on a la certitude que le joueur numJoueur la possède
    """
    jeuCarte = getJeuCartes(ficheIndices)
    liste_num_cat = jeucarte.getListeNumCarteCategorie(jeuCarte, categorie)
    certitude = []
    for numCarte in liste_num_cat:
        if ficheIndices[jeucarte.getCarteParNum(jeuCarte, categorie,
                                                numCarte)][numJoueur] == '+':
            certitude.append(numCarte)
    return certitude
Пример #4
0
def estConnue(ficheIndices, numCarte, numCategorie):
    """
    indique si pour une carte donnée soit on sait qu'elle appartient à l'un des joueurs
                                     soit on sait qu'elle n'appartient à personne
    paramètres: ficheIndices la fiche considérée
                numCarte le numéro de la carte concernée
                numCategorie le numéro de la catégorie de la carte concernée
    résultat un booléen indiquant si on sait définitivement si la carte appartient à un joueur ou à personne
    """
    nombre_possede_pas = 0
    for indic in ficheIndices[jeucarte.getCarteParNum(
            getJeuCartes(ficheIndices), numCategorie, numCarte)].values():
        if indic == '+':
            return True
        if indic == '?':
            return False
    return True
Пример #5
0
def connaissance(ficheIndices, numJoueur, numCarte, numCategorie, indication):
    """
    met à jour la fiche indice d'un joueur en fonction des informations qu'il vient de constater c-à-d
      * soit le joueur numJoueur possède la carte identifiée par numCarte numCategorie
      * soit le joueur numJoueur ne possède pas la carte identifiée par numCarte numCategorie
    paramètres: ficheIndices la fiche considérée
                numJoueur le numéro du joueur qui a montré ou qui a indiqué ne pas avoir la carte
                numCarte le numéro de la carte concernée
                numCategorie le numéro de la catégorie de la carte concernée
                indication soit POSSEDE soit NEPOSSEDEPAS
    cette fonction ne retourne rien mais elle modifie la fiche concernée en fonction des indications
    """
    carte = jeucarte.getCarteParNum(getJeuCartes(ficheIndices), numCategorie,
                                    numCarte)
    if indication == "+":
        for num_joueur in getListeNumJoueurs(ficheIndices):
            ficheIndices[carte][num_joueur] = '-'
    ficheIndices[carte][numJoueur] = indication
Пример #6
0
def hypothesesSures(ficheIndices):
    """
    retourne un dictionnaire dont les clés sont les catégories de carte et les valeurs la carte de la
    catégorie correspondante que l'on sait être dans la solution. Si on n'a aucune certitude pour une 
    catégorie, la clé ne sera pas présente dans le dictionnaire.
    paramètres: ficheIndices la fiche considérée
    résultat le dictionnaire décrit ci dessus
    """
    dico_hypothese = {}
    jeuCarte = getJeuCartes(ficheIndices)
    for categorie in range(1, 4):
        liste_num_carte = jeucarte.getListeNumCarteCategorie(
            jeuCarte, categorie)
        for num_carte in liste_num_carte:
            if estDansLeMystere:
                dico_hypothese[categorie] = jeucarte.getCarteParNum(
                    jeuCarte, categorie, num_carte)
    return dico_hypothese