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)
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
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)
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 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
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)
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
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)
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)
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
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)
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)
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:
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 !!!")