コード例 #1
0
ファイル: mainGen.py プロジェクト: Saighi/2i013
def play():

    jeu = game.initialiseJeu()

    while len(jeu[3]) < 4:

        valides = game.getCoupsValides(jeu)

        if game.finJeu(jeu):
            break
        if len(valides) != 0:
            coup = random.choice(valides)

        game.joueCoup(jeu, coup)

    while True:

        #game.affiche(jeu)
        valides = game.getCoupsValides(jeu)

        if game.finJeu(jeu):
            break

        if len(valides) != 0:

            coup = game.saisieCoup(jeu)

        game.joueCoup(jeu, coup)

    #print("Le gagnant est : " + str(game.getGagnant(jeu)))

    return fitness(jeu)
コード例 #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
コード例 #5
0
def joue():
    jeu = game.initialiseJeu()
    while (not game.finJeu(jeu)):
        game.affiche(jeu)
        c = game.saisieCoup(game.getCopieJeu(jeu))
        jeu = game.joueCoup(jeu, c)
    g = game.getGagnant(jeu)
    return g
コード例 #6
0
def joue():
    """void -> nat
    retourne un gagnant"""
    jeu = game.initialiseJeu()

    while not game.finJeu(jeu):
        #game.affiche(jeu)
        print "joueur : {}".format(game.getJoueur(jeu))
        coup = game.saisieCoup(jeu)
        print "coup joue : {}".format(coup)
        game.joueCoup(jeu, coup)
        print "score : {}".format(game.getScores(jeu))
        #game.affiche(jeu)
    return game.getGagnant(jeu)
コード例 #7
0
def Entrainement(ev, alpha):
    nbrepartie = 0
    j1 = 0
    j2 = 0
    it = 0
    j = 1
    while (nbrepartie < NBPARTIE):
        if (nbrepartie == NBPARTIE / 2):
            j = 2
        jeu = game.initialiseJeu()

        while (it < 100 or game.finJeu(jeu)):
            if (game.getJoueur == j):
                coupElv = eleve.saisieCoup(game.getCopieJeu(jeu), ev)
                coupM = maitre.saisieCoup(game.getCopieJeu(jeu))
                if (coupElv == coupM):
                    game.saisieCoup(coupElv)
                else:
                    print "mauvais"

                game.saisiecoup(eleve.saisieCoup(game.getCopieJeu(jeu), ev))
            else:
                game.saisieCoup(sparing.saisieCoup(jeu))
            it += 1

        j = 1
        nbrepartie += 1
        if (g == 1):
            j1 += 1
        if (g == 2):
            j2 += 1
        if (g == 0):
            eg += 1
        nbrepartie += 1
    print("score final :\nj1: " + str(j2) + "\nj2: " + str(j1) +
          "\nnb d'equalite : " + str(eg))
    print ev
コード例 #8
0
def joue():
    """void -> nat
    retourne un gagnant"""
    jeu = game.initialiseJeu()

    for i in range(4):
        random.seed()
        coup = joueur_aleatoire.saisieCoup(jeu)
        game.joueCoup(jeu, coup)

    while not game.finJeu(jeu):
        #game.affiche(jeu)
        coup = game.saisieCoup(jeu)
        game.joueCoup(jeu, coup)
    return game.getGagnant(jeu)
コード例 #9
0
def play():

    global W
    global Alpha

    jeu = game.initialiseJeu()
    print(game.joueur1)

    while True:

        #game.affiche(jeu)
        valides = game.getCoupsValides(jeu)
        print(EvalCoupHorizon1(game.getCopieJeu(jeu), valides[0]))
        print(oracle.scorescoups(jeu)[0])
        """if jeu[2] !=None:
            scoresoracle= oracle.scorescoups(jeu)


            o=EvalCoupHorizon1(game.getCopieJeu(jeu),oracle.saisieCoup(jeu))

            for i in range(len(valides)):
                if scoresoracle[i] < max(scoresoracle):
                    if (o-EvalCoupHorizon1(game.getCopieJeu(jeu),valides[i]))<1:

                        W[0]= W[0]-Alpha*(h1CoupHorizon1(game.getCopieJeu(jeu),valides[i])-h1CoupHorizon1(game.getCopieJeu(jeu),oracle.saisieCoup(jeu)))
                            
                        W[1]= W[1]-Alpha*(h2CoupHorizon1(game.getCopieJeu(jeu),valides[i])-h2CoupHorizon1(game.getCopieJeu(jeu),oracle.saisieCoup(jeu)))

                        W[2]= W[2]-Alpha*(h3CoupHorizon1(game.getCopieJeu(jeu),valides[i])-h3CoupHorizon1(game.getCopieJeu(jeu),oracle.saisieCoup(jeu)))

                        W[3]= W[3]-Alpha*(h4CoupHorizon1(game.getCopieJeu(jeu),valides[i])-h4CoupHorizon1(game.getCopieJeu(jeu),oracle.saisieCoup(jeu)))

                        W[4]= W[4]-Alpha*(h5CoupHorizon1(game.getCopieJeu(jeu),valides[i])-h5CoupHorizon1(game.getCopieJeu(jeu),oracle.saisieCoup(jeu)))

                        W[5]= W[5]-Alpha*(h6CoupHorizon1(game.getCopieJeu(jeu),valides[i])-h6CoupHorizon1(game.getCopieJeu(jeu),oracle.saisieCoup(jeu)))
        """

        if game.finJeu(jeu):

            break

        elif valides != None:

            coup = game.saisieCoup(jeu)

        game.joueCoup(jeu, coup)

    return game.getGagnant(jeu)
コード例 #10
0
ファイル: main2.py プロジェクト: Chackoya/Awale-OthelloIA
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
コード例 #11
0
ファイル: main.py プロジェクト: Saighi/2i013
def play():

    jeu = game.initialiseJeu()

    while True:

        #game.affiche(jeu)
        valides = game.getCoupsValides(jeu)

        if game.finJeu(jeu):

            break

        elif valides != None:

            coup = game.saisieCoup(jeu)

        game.joueCoup(jeu, coup)

    print("Le gagnant est : ", game.getGagnant(jeu))

    return game.getGagnant(jeu)
コード例 #12
0
def play():

    jeu = game.initialiseJeu()

    while True:



        #game.affiche(jeu)
        valides = game.getCoupsValides(jeu)

        if game.finJeu(jeu):
            break


        if len(valides) !=0:

             coup = game.saisieCoup(jeu)


        game.joueCoup(jeu,coup)

    print("Le gagnant est : " + str(game.getGagnant(jeu)))
    return game.getGagnant(jeu)
コード例 #13
0
tabNoeudsJ2 = []
profondeur = []

#winsPlayer1:nombre de victoires du joueur 1
#winsPlayer2:nombre de victoires du joueur 2
#matchNul (nombre de matchs nuls)
#scoreMoyen1 et scoreMoyen2 (scores moyens de chaque joueur)
#nbc (nombre de coups joues en moyenne)

for i in range(1,n+1):
    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:
コード例 #14
0
for i in range(6):
	JEU.plat.plateau[0][i] = 0
game.affiche(JEU)
game.getCoupsValides(JEU)
for c in JEU.coups_possibles:
	game.afficheCoup(c)
print("j1",JEU.joueur)
game.joueCoup(JEU, game.coup(0,0))
print("j2",JEU.joueur)
game.affiche(JEU)
game.getCoupsValides(JEU)
print("j3",JEU.joueur)
for c in JEU.coups_possibles:
	game.afficheCoup(c)"""

print("BIENVENUE sur le jeu AWELE !!!\n")
jeu = game.initialiseJeu()

# Boucle principal du jeu
while (not game.finJeu(jeu)):
    game.affiche(jeu)
    game.joueCoup(jeu, game.saisieCoup(jeu))
    #time.sleep(.5)

print("C'est la fin du jeu et c'est ", end="")
gagnant = game.getGagnant(jeu)
if (gagnant == 0):
    print("un MATCH NUL !!!")
else:
    print("le JOUEUR", gagnant, "qui gagne, BRAVO a lui !!!")