Пример #1
0
def evaluationScore(jeu):
    """ jeu -> reel
        retourner le coup qui donne le meilleur resultat
    """
    #print(((game.getScore(jeu,monJoueur-48))/48)*100)
    return game.getScore(jeu, monJoueur) - game.getScore(
        jeu, monJoueur % 2 + 1)
Пример #2
0
def atk(jeu):
    """
    jeu*jeu -> float
    Retourne un nombre compris entre [0,1] qui evalue l'effacite d'un coup joue par rapport au score
    """

    return float(game.getScore(jeu, moi) - game.getScore(jeu, adv)) / 18
Пример #3
0
def attaque(jeu1, jeu2):
    """
		jeu*jeu -> float
		Retourne un nombre compris entre [0,1] qui evalue l'effacite d'un coup joue par rapport au score
	"""
    if float(game.getScore(jeu1, moi) - game.getScore(jeu2, moi)) / 18 > 0:
        return float(
            abs(game.getScore(jeu1, moi) - game.getScore(jeu2, moi))) / 18
    else:
        return 0
def choisieCoup(jeu):
    """ jeu -> coup
		Choisi le coup qui rapportera le plus de score
	"""
    # test tous les coups possibles avec une copie du jeu
    meilleur_score = 0
    jeu_test = game.getCopieJeu(jeu)
    joueur = game.getJoueur(jeu)
    for c in jeu.coups_possibles:
        game.joueCoup(jeu_test, c)
        if (game.getScore(jeu_test, joueur) >= meilleur_score):
            meilleur_score = game.getScore(jeu_test, joueur)
            meilleur_coup = c
        jeu_test = game.getCopieJeu(jeu)
    return meilleur_coup
Пример #5
0
    def heuristic(self, grid):
        """https://github.com/nneonneo/2048-ai/blob/master/2048.cpp
        SCORE_LOST_PENALTY = 200000
        SCORE_MONOTONICITY_POWER = 4
        SCORE_MONOTONICITY_WEIGHT = 47
        SCORE_SUM_POWER = 3.5
        SCORE_SUM_WEIGHT = 11
        SCORE_MERGES_WEIGHT = 700
        SCORE_EMPTY_WEIGHT = 270"""

        return game.getScore(grid)
Пример #6
0
def joue():
    jeu=game.initialiseJeu()
    it=0
    while((it<100)and (not game.finJeu(jeu))):
        game.affiche(jeu)
        coup=saisieCoup(jeu)
        game.joueCoup(jeu,coup)
        it+=1

    game.affiche(jeu)
    print("gagnant="+str(game.getGagnant(jeu)+":"+ str(game.getScore(jeu))))

    return jeu
Пример #7
0
def joueCoup(jeu, coup):

    save = game.getCopieJeu(
        jeu
    )  #on simule d'abord le coup pour vérifier que celui-ci ne va pas affamer l'adversaire
    v = game.getCaseVal(save, coup[0], coup[1])
    game.setCaseVal(save, coup[0], coup[1], 0)
    case = distribue(
        save, coup, v
    )  #la fonction distribue renvoie la derniere case ou une graine a ete depose
    score = game.getScore(save, game.getJoueur(save))
    while case[0] == game.getJoueurAdverse(save) - 1 and (
            save[0][case[0]][case[1]] == 2 or save[0][case[0]][case[1]] == 3):
        score = score + recolte(save, case)
        case = nextCase(save, case)
Пример #8
0
    def do_GET(self):
        if self.path == "/getRound":
            response = game.getRound()
            self.send_response(200)
            self.send_header('Content-type','application/json')
            self.end_headers()
            print json.dumps(response)
            self.wfile.write(json.dumps(response))

        elif self.path == "/getScore":
            self.send_response(200)
            self.send_header('Content-type','application/json')
            self.end_headers()
            self.wfile.write(json.dumps(game.getScore()))
            
        else:
            SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
Пример #9
0
def evaluationScore(jeu):
    """ jeu -> reel
        retourner le coup qui donne le meilleur resultat
    """
    return game.getScore(jeu, monJoueur) - game.getScore(
        jeu, monJoueur % 2 + 1)
Пример #10
0
def f1(jeu):
    #print ("difference de score " + str (game.getScore(jeu,moi)-game.getScore(jeu, moi%2+1)))
    return game.getScore(jeu, moi) - game.getScore(jeu, moi % 2 + 1)
Пример #11
0
def evaluationDifference(jeu):
    adv = monJoueur % 2 + 1
    return game.getScore(jeu, monJoueur) - game.getScore(jeu, adv)
Пример #12
0
def evalj(jeu):
    #pas sur de la fonction
    return game.getScore(jeu,game.getJoueur(jeu))
Пример #13
0
def evaluationScore(jeu):
    return  game.getScore(jeu, monJoueur)-game.getScore(jeu, monJoueur%2+1)
Пример #14
0
def evalj(jeu):

    return game.getScore(jeu, game.getJoueur(jeu))
Пример #15
0
def diffScores(jeu):
    return game.getScore(jeu, moi) - game.getScore(jeu, moi % 2 + 1)
Пример #16
0
def evaluation(jeu):
    """ jeu -> int 
    """
    return game.getScore(jeu, moi) - game.getScore(jeu, moi % 2 + 1)
Пример #17
0
    v = game.getCaseVal(save, coup[0], coup[1])
    game.setCaseVal(save, coup[0], coup[1], 0)
    case = distribue(
        save, coup, v
    )  #la fonction distribue renvoie la derniere case ou une graine a ete depose
    score = game.getScore(save, game.getJoueur(save))
    while case[0] == game.getJoueurAdverse(save) - 1 and (
            save[0][case[0]][case[1]] == 2 or save[0][case[0]][case[1]] == 3):
        score = score + recolte(save, case)
        case = nextCase(save, case)
    if advAffame(save):
        distribue(jeu, coup, v)
    else:
        game.setCaseVal(jeu, coup[0], coup[1], 0)
        case = distribue(jeu, coup, v)
        score = game.getScore(jeu, game.getJoueur(jeu))
        while case[0] == game.getJoueurAdverse(jeu) - 1 and (
                jeu[0][case[0]][case[1]] == 2
                or jeu[0][case[0]][case[1]] == 3):
            score = score + recolte(jeu, case)
            case = nextCase(jeu, case)
    game.setAtmPlayerScore(jeu, score)
    game.changeJoueur(jeu)
    return


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
Пример #18
0
        """# 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)
    tabNoeudsJ1.append(awele_alphaBeta.nombreDeNoeuds)
    tabNoeudsJ2.append(awele_minMax.nombreDeNoeuds)
    profondeur.append(awele_alphaBeta.prof)
    print ("1:",tabNoeudsJ1)#affichage tab des noeuds qu'on utilisera pr les graph
    print("2:",tabNoeudsJ2)
    game.joueur1.prof += 1
    game.joueur2.prof += 1
    if i == n/2 :#changement de coté pour joueur
        game.joueurinter1=game.joueur2