예제 #1
0
def joueCoup(jeu, coup):
    v = game.getCaseVal(jeu, coup[0], coup[1])
    game.setCaseVal(jeu, coup[0], coup[1], 0)
    distribue(jeu, coup, v)
    game.addCoupJoue(jeu, coup)
    game.changeJoueur(jeu)
    game.resetCoupsValides(jeu)
예제 #2
0
def joueCoup(jeu,coup):
    v=game.getCaseVal(jeu,coup[0],coup[1])
    game.setCaseVal(jeu,coup[0],coup[1],0)
    distribue(jeu,coup,v)
    game.addCoupJoues(jeu,coup)
    jeu[2]=None
    game.changeJoueur(jeu)
예제 #3
0
def getCoupsValides(jeu):
    """jeu -> List[coup]
		retourne la liste des coups valide a partir du plateau du jeu awele
	"""
    liste_coups_valides = []
    camp_joueur = jeu.joueur - 1
    # Boucle qui parcourt chaque trou du joueur qui va jouer
    for t in range(colonnes):
        # Si il y a des graines
        if (jeu.plat.plateau[camp_joueur][t] > 0):
            # test si le coup affame l'autre joueur
            jeu_test = game.getCopieJeu(jeu)
            Coup = game.coup(camp_joueur, t)
            updatePlateauScore(jeu_test, Coup)
            game.changeJoueur(jeu_test)
            LautreCamp = jeu_test.joueur - 1
            C = 0
            compteur = 0
            while (C < colonnes and jeu_test.plat.plateau[LautreCamp][C] == 0):
                compteur += 1
                C += 1
            # si il ne l'affame pas alors c'est un coup valide
            if (compteur != colonnes):
                liste_coups_valides.append(Coup)
    return liste_coups_valides

    #def finJeu(jeu):
    """ jeu -> bool
		Retourne vrai si c'est la fin du jeu
    	"""
    #test si un des deux camps n'est pas vide
    """res = [0,0]
예제 #4
0
def joueCoup(jeu, coup):

    game.addCoupJoue(jeu, coup)
    j = game.getJoueur(jeu)
    s = jeu[-1]
    e = encadrements(jeu,coup,True)
    adv = (j%2) + 1
    game.setCaseVal(jeu, coup[0], coup[1], j)
    for d in e:
        l = coup[0]
        c = coup[1]
        while True :
            l+=d[0]
            c+=d[1]
            if game.getCaseVal(jeu,l,c)==j :
                break
            game.setCaseVal(jeu,l,c,j)
            s[j-1]+=1
            s[adv-1]-=1
    
    jeu[-1] = [0, 0]
    for i in range(8):
        for j in range(8):
            sc = game.getCaseVal(jeu, i, j)
            if (sc != 0):
                jeu[-1][sc - 1] += 1
    game.changeJoueur(jeu)
    game.resetCoupsValides(jeu)
예제 #5
0
파일: puissance.py 프로젝트: mdeville/2I013
def joueCoup(jeu, coup):

    game.addCoupJoue(jeu, coup)
    j = game.getJoueur(jeu)
    i = 0
    while i < 6 and game.getCaseVal(jeu, i, coup[1]) == 0:
    	i += 1
    game.setCaseVal(jeu, i - 1, coup[1], j)
    game.changeJoueur(jeu)
    game.resetCoupsValides(jeu)
예제 #6
0
파일: awele.py 프로젝트: claracvs/ProjetJeu
def joueCoup(jeu, coup) : 
    """jeu*coup->jeu
    re-initialise le jeu en fonction du coup joue    
    """
    nb_graines = game.getCaseVal(jeu, coup[0], coup[1])
    game.setCaseVal(jeu, coup[0], coup[1], 0)
    distribueJeu(jeu, coup, nb_graines)
    jeu[3].append(coup)
    jeu[2]=None
    game.changeJoueur(jeu)
예제 #7
0
def func3(jeu,liste):
    """ jeu -> int
    	Mobilite
    """
    cvAdv = game.getCoupsValides(jeu)
    game.changeJoueur(jeu)
    cvMoi = game.getCoupsValides(jeu)
    game.changeJoueur(jeu)
    if (game.getJoueur == moi and (cvMoi+cvAdv != 0)):
        return (cvMoi-cvAdv)/(cvMoi+cvAdv)
    return 0
def joueCoup(jeu,coup):
    """jeu*coup->void
        Joue un coup a l'aide de la fonction distribue
        Hypothese:le coup est valide
    """
    v=game.getCaseVal(jeu,coup[0],coup[1])
    game.setCaseVal(jeu,coup[0],coup[1],0)
    distribue(jeu,coup,v)
    game.addCoupJoue(jeu,coup)
    game.changeJoueur(jeu)
    game.razCoupsValides(jeu)
예제 #9
0
def f3(jeu, liste):
    """ jeu -> int
    Mobilite, voir porté des coups que je pourrais joué par la suite
        % de nbre de coup valide que j'ai par rapport a tous les coups valides de l'ennemie
        """
    coupsValAdv = game.getCoupsValides(jeu)
    game.changeJoueur(jeu)
    coupsValMoi = game.getCoupsValides(jeu)
    if (game.getJoueur == moi and (coupsValMoi + coupsValAdv != 0)):
        return 100 * (
            (coupsValMoi - coupsValAdv) / (coupsValMoi + coupsValAdv)
        )  #restreint la mobilité de l'adversaissaire; pousser a avoir moin possibilité de coup.
    return 0
예제 #10
0
def joueCoup(jeu, coup):
    l,c = distribue(jeu, coup)
    save = game.getCopieJeu(jeu)
    j = game.getJoueur(jeu)
    v = game.getCaseVal(jeu,l, c)
  
    while(l == (j%2) and ((v == 2) or (v == 3))):
        #print("in")
        jeu[0][l][c] = 0
        #print(jeu[0][l][c])
        jeu[-1][j-1] += v
        #print(jeu[-1][j-1])
        l,c = nextCase(l,c,True)
        v = game.getCaseVal(jeu, l, c)

    if advaffame(jeu):
        jeu[0] = save[0]
        jeu[-1] = save[-1]

    game.changeJoueur(jeu)
    jeu[2] = None
    jeu[3].append(coup)
def joueCoup(jeu, coup):
    """jeu*coup->void
        Joue un coup:
            - Cherche toutes les directions d'encadrement
            - Pour toutes les directions trouvees, lance la fonction retournePieces pour retourner les pieces encadrees
            - Met a jour les scores selon le nombre de pieces retournees
        Hypothese:le coup est valide
    """
    l = trouveEncadrements(jeu, coup)
    a = [retournePieces(jeu, coup, x) for x in l]
    j = game.getJoueur(jeu)
    sc = [0, 0]
    if (j == 1):
        sc[0] = 1
    else:
        sc[1] += 1
    game.setCaseVal(jeu, coup[0], coup[1], j)
    s = reduce(lambda x, y: [x[0] + y[0], x[1] + y[1]], a, sc)
    game.addScore(jeu, 1, s[0])
    game.addScore(jeu, 2, s[1])
    game.addCoupJoue(jeu, coup)
    game.changeJoueur(jeu)
    game.razCoupsValides(jeu)
예제 #12
0
def joueCoup(jeu, coup):
    """
    jeu[0][coup[0]][coup[1]]=jeu[1]
    jeu[4][jeu[1]]+=1 #ajout de points au score
    d=getEncadrements(jeu,coup,True)
    for x in d:
        retournePions(jeu,coup,d)
    jeu[3].append(coup)
    jeu[2]=None
    jeu[1]=jeu[1]%2+1
    global r 
    version:
        
    """
    #retournePions(jeu,coup,d)
    j = game.getJoueur(jeu)
    adv = game.getJoueurAdverse(jeu)
    score = game.getScores(jeu)
    enca = getEncadrements(jeu, coup, True)
    for d in enca:
        l = coup[0]
        c = coup[1]
        game.setCaseVal(jeu, l, c, j)
        while True:
            l += d[0]
            c += d[1]
            if game.getCaseVal(jeu, l, c) == j:
                break
            game.setCaseVal(jeu, l, c, j)
            score[j - 1] += 1
            score[adv - 1] -= 1

    game.setPlayerScore(jeu, j, score[j - 1] + 1)
    game.setPlayerScore(jeu, adv, score[adv - 1])
    game.changeJoueur(jeu)
    jeu[3] = []
    """    
예제 #13
0
    adversaire = joueur % 2 + 1
    game.setCaseVal(jeu, coup[0], coup[1], joueur)
    jeu[4][joueur - 1] += 1
    #print "encadrement :{}".format(encadrements(jeu, coup, True))
    for d in encadrements(jeu, coup, True):
        #print "direction  :{}".format(d)
        case = [coup[0], coup[1]]
        case[0] += d[0]
        case[1] += d[1]
        while game.getCaseVal(jeu, case[0], case[1]) == adversaire:
            game.setCaseVal(jeu, case[0], case[1], joueur)
            #print "case retournee :{}".format(jeu[0][case[0]][case[1]])
            #print "case : {}".format (case)
            jeu[4][joueur - 1] += 1
            jeu[4][adversaire - 1] -= 1
    game.changeJoueur(jeu)
    jeu[2] = None


def finPartie(jeu):
    """jeu->bool
    retourne vrai si la fin du jeu est atteinte, false sinon"""
    if game.getCoupsValides == []:
        return True

    fin_atteinte = True

    for i in range(8):
        for j in range(8):
            if jeu[0][i][j] == 0:
                fin_atteinte = False