Пример #1
0
def finJeu(jeu):
    if (jeu[0] == [[0 for i in range(6)]
                   for j in range(2)]) or getCoupsValides(jeu) == [] or len(
                       game.getCoupsJoues(jeu)) == 100:
        return True

    return False
Пример #2
0
def jouePARTIE(j1, j2):
    global playerONE
    global playerTWO

    #On initialise a ALEA les 4 premier Coups pr que ce soit équilibré et pr éviter même partie.
    for i in range(1):
        jeu = game.initialiseJeu()
        game.joueur1 = othello_alea
        game.joueur2 = othello_alea

        while not game.finJeu(jeu):
            #game.affiche(jeu)
            coup = game.saisieCoup(jeu)
            game.joueCoup(jeu, coup)
            if len(game.getCoupsJoues(jeu)) == 4:
                game.joueur1 = j1
                game.joueur2 = j2

            if i == nbRounds / 2:
                game.joueur1 = j2
                game.joueur2 = j1
                #playerONE=2
                #playerTWO=1

            #print ("Nombre de tours : " + str(len(game.getCoupsJoues(jeu))))

    #print("Gagnant de la partie est : ",game.getGagnant(jeu))
    gagnant = game.getGagnant(jeu)

    return gagnant
Пример #3
0
def joueN(n):
    global y
    v1, j1 = 0, 1
    """
# =============================================================================
#         - v1 (nombre de victoires du joueur 1), v2 (nombre de victoires du joueur 2), mn (nombre de matchs nuls)
#         - sc1 et sc2 (scores moyens de chaque joueur)
#         - nbc (nombre de coups joues en moyenne)
# =============================================================================
    """
    #lancer une partie, 3 coups alea au debut puis chaque joueur se met a jouer
    for i in range(n):
        game.joueur1 = awele_alea
        game.joueur2 = awele_alea
        jeu = game.initialiseJeu()
        while not game.finJeu(jeu):
            coup = game.saisieCoup(jeu)
            game.joueCoup(jeu, coup)
            if len(game.getCoupsJoues(jeu)) == 4:
                game.joueur1 = game.joueurinter1
                game.joueur2 = game.joueurinter2

        if game.getGagnant(jeu) == j1:
            v1 += 1

    v1 = float(v1) / float(n)  #ratio victoire/nbre de match
    y.append(
        v1
    )  #y=liste de victoire éfféctué (ou on ajoute a la fin de la liste le nombre de victoire pour n partie faite)
Пример #4
0
def JoueN(
    joueur1, joueur2
):  # joue 10 partie (variable N) et compte le nombre de victoire de joueur 1 (l'eleve)
    global j1, j2
    victoires = 0

    for i in range(N):
        game.joueur1 = othello_alea  #transforme mes joueur en joueur aleatoire
        game.joueur2 = othello_alea  #permet de tirer des coups aleatoire au debut, sinon tjr meme partie
        jeu = game.initialiseJeu()
        while not game.finJeu(jeu):
            coup = game.saisieCoup(
                jeu)  #joues different coups tant que cest pas la fin du jeu
            game.joueCoup(jeu, coup)
            if len(game.getCoupsJoues(jeu)
                   ) == 4:  #apres 4 coups aleatoire,le jeu commence vraiment
                game.joueur2 = joueur2
                game.joueur1 = joueur1
            g = game.getGagnant(jeu)
        if g == j1:  #on compte le nbre de victoire de leleve
            victoires += 1
        if i == N / 2:
            game.joueur1 = joueur2  #apres N/2 partie, on echange les joeuur , pour quon ai pas le meme joueur qui commence
            game.joueur2 = joueur1
            j1 = game.joueur2

    j1 = game.joueur1

    return victoires
def CaseConsecutif(jeu, coup, joueur):
    cj = game.getCoupsJoues(jeu)
    i = -6

    while i < 0:
        if len(cj) < 15 and (
                len(cj) + i
        ) < 0:  #si in est plus en debut et si il n'y a plus de coup precedent
            return 0
        elif abs(cj[i][1] -
                 coup[1]) == 1:  #si c'est un voisin des deux dernier
            return 0
        i = i + 2
    return 1
Пример #6
0
def jouePARTIE():
    jeu = game.initialiseJeu()
    while not game.finJeu(jeu):
        game.affiche(jeu)
        coup = game.saisieCoup(jeu)
        game.joueCoup(jeu, coup)
        print(
            "Nombre de tours : " + str(len(game.getCoupsJoues(jeu)))
        )  #str permet de cast, sinon on peut pas concatener un str et un int
    if game.getGagnant(jeu) == 0:
        print("\nEgalite parfaite !")
    else:
        print("\nLe joueur " + str(game.getGagnant(jeu)) + " a gagne !")
    print("\nPlateau de fin de jeu: ")
    game.game.affiche(jeu)
    g = game.getGagnant(jeu)
    return g
Пример #7
0
def finJeu(jeu):
    """ jeu -> bool
        When one player has captured 25 or more seeds.
        When one player has no move to avoid the opponent to starve
        When a given position occurs for the second time with the same player's turn.
    """

    if(jeu[4][0] >= 25 or jeu[4][1] >= 25):
        return True
    
    if(game.getCoupsValides(jeu) == []):
        return True
    
    if(len(game.getCoupsJoues(jeu))>=100):
        return True

    

    return False
Пример #8
0
    game.joueur1 = awele_alea
    game.joueur2 = awele_alea
    jeu = game.initialiseJeu()
    while not game.finJeu(jeu) :
        #game.affiche(jeu)
        coup = game.saisieCoup(jeu)
        game.joueCoup(jeu,coup)
        
        

        """# print(game.joueur1)
        # print(game.joueur2)
        # print("Nombre de tours : " + str(len(game.getCoupsJoues(jeu))))"""
    
        
        if len(game.getCoupsJoues(jeu)) == 4:#fin coup aleatoire
            game.joueur1=game.joueurinter1
            game.joueur2=game.joueurinter2
    if game.getGagnant(jeu) == j1:
        winsPlayer1+=1
    elif game.getGagnant(jeu) == j2:
        winsPlayer2+=1
    else:
        matchNul+=1
    scoreMoyen1 += game.getScore(jeu,j1)#additionne les scores de j1 puis va diviser par n ensuite
    scoreMoyen2 += game.getScore(jeu,j2)
    nbc += len(game.getCoupsJoues(jeu))
    jeuCopie = game.getCopieJeu(jeu)
    jeuCopie[1] = game.getGagnant(jeu)
    tabParties.append(jeuCopie)
    #game.affiche(jeu)
Пример #9
0
import Ciri

game.joueur1 = Ciri
game.joueur2 = Keira
maitre = Oracle
eleve = game.joueur1
adversaire = game.joueur2

sc = []
a = 0.1
while True:
    jeu = game.initialiseJeu()
    game.joueur1 = awele_alea
    game.joueur2 = awele_alea
    while not game.finJeu(jeu):
        if len(game.getCoupsJoues(jeu)) == 4:
            game.joueur1 = eleve
            game.joueur2 = adversaire
        # elif game.getJoueur(jeu)==1 and len(game.getCoupsJoues(jeu)) > 4:
        if game.getJoueur(jeu) == 1:
            cp = game.getCoupsValides(jeu)
            ls = [
                maitre.estimation(game.getCopieJeu(jeu), x, -1000000, 1000000,
                                  1) for x in cp
            ]  #liste des estimations de l oracle pour chacun des coups possibles
            opt = cp[ls.index(max(ls))]  #coup qui serait joue par l oracle
            sopt = game.getCopieJeu(
                jeu
            )  #sopt correspond a l etat du jeu si le coup choisi par l oracle est joue
            game.joueCoup(sopt, opt)
            m = max(ls)
Пример #10
0
def finJeu(jeu):
    """jeu->bool
        Retourne vrai si il n'y a plus aucun coup valide ou si un joueur a manger plus de la moitie des graines
    """
    s=game.getScores(jeu)
    return len(game.getCoupsValides(jeu))==0 or s[0]>=25 or s[1]>=25 or len(game.getCoupsJoues(jeu))>=100
Пример #11
0
def finJeu(jeu):
    if len(game.getCoupsJoues(jeu)) == 64 or game.getCoupsValides(jeu) == []:
        return True
    return False