Exemple #1
0
def getMovimientos(board, x, y):
    posicionInicial = [x, y]
    pieza = tablero.getPieza(board, x, y)
    color = tablero.getColor(pieza)
    movimientosPosibles = []

    if (color == 'black'):
        if (tablero.posicionVacia(board, x, y + 1)):
            movimientosPosibles.append([x, y + 1])
        if (y == 3 and tablero.posicionVacia(board, x, y + 2)
                and tablero.posicionVacia(board, x, y + 1)):
            movimientosPosibles.append([x, y + 2])
        if (tablero.getColor(tablero.getPieza(board, x + 1,
                                              y + 1)) == 'white'):
            movimientosPosibles.append([x + 1, y + 1])
        if (tablero.getColor(tablero.getPieza(board, x - 1,
                                              y + 1)) == 'white'):
            movimientosPosibles.append([x - 1, y + 1])

    if (color == 'white'):
        if (tablero.posicionVacia(board, x, y - 1)):
            movimientosPosibles.append([x, y - 1])
        if (y == 12 and tablero.posicionVacia(board, x, y - 2)
                and tablero.posicionVacia(board, x, y - 1)):
            movimientosPosibles.append([x, y - 2])
        if (tablero.getColor(tablero.getPieza(board, x + 1,
                                              y - 1)) == 'black'):
            movimientosPosibles.append([x + 1, y - 1])
        if (tablero.getColor(tablero.getPieza(board, x - 1,
                                              y - 1)) == 'black'):
            movimientosPosibles.append([x - 1, y - 1])

    return movimientosPosibles
Exemple #2
0
def getPiezasPorColor(board, color):
    piezas = []
    for y in range(16):
        for x in range(16):
            pieza = tablero.getPieza(board, x, y)
            if (tablero.getColor(pieza) == color):
                piezas.append([pieza, x, y])
    return piezas
Exemple #3
0
def getMejorMovimientoPieza(board, pieza, x, y, movimientos):
    highScore = -999999
    mejorMovimiento = []
    colorPlayer = tablero.getColor(pieza)
    posicionInicial = [x, y]
    if (movimientos != []):
        for movimiento in movimientos:
            score = getPuntosPorMovimiento(board, pieza, movimiento)
            # evaluar futuros movimientos, lo cual sumaria o restaria score para asi evaluar la jugada con el mayor score final.
            movimientoCompleto = [posicionInicial, movimiento]
            scoreSimulado = simularJugadasFuturas(board, colorPlayer,
                                                  colorPlayer,
                                                  movimientoCompleto,
                                                  constantes.CANT_ITERACIONES,
                                                  score)
            score = score + scoreSimulado
            if (score > highScore):
                highScore = score
                mejorMovimiento = movimiento
    return {'mejorMovimiento': mejorMovimiento, 'mayorPuntaje': highScore}
Exemple #4
0
def getMovimientos(board, x, y):
    posicionInicial = [x, y]
    pieza = tablero.getPieza(board, x, y)
    color = tablero.getColor(pieza)
    movimientosPosibles = []

    if (color == 'black'):
        #eje y-x+
        X = x
        Y = y
        while (Y > 0 and X < 15):
            Y -= 1
            X += 1
            if (tablero.posicionVacia(board, X, Y)):
                movimientosPosibles.append([X, Y])
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
                break
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
                movimientosPosibles.append([X, Y])
                break

        #eje y+x+
        X = x
        Y = y
        while (Y < 15 and X < 15):
            Y += 1
            X += 1
            if (tablero.posicionVacia(board, X, Y)):
                movimientosPosibles.append([X, Y])
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
                break
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
                movimientosPosibles.append([X, Y])
                break

        #eje y+x-
        X = x
        Y = y
        while (Y < 15 and X > 0):
            Y += 1
            X -= 1
            if (tablero.posicionVacia(board, X, Y)):
                movimientosPosibles.append([X, Y])
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
                break
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
                movimientosPosibles.append([X, Y])
                break

        #eje y-x-
        X = x
        Y = y
        while (Y > 0 and X > 0):
            Y -= 1
            X -= 1
            if (tablero.posicionVacia(board, X, Y)):
                movimientosPosibles.append([X, Y])
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
                break
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
                movimientosPosibles.append([X, Y])
                break

    if (color == 'white'):
        #eje y-x+
        X = x
        Y = y
        while (Y > 0 and X < 15):
            Y -= 1
            X += 1
            if (tablero.posicionVacia(board, X, Y)):
                movimientosPosibles.append([X, Y])
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
                break
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
                movimientosPosibles.append([X, Y])
                break

        #eje y+x+
        X = x
        Y = y
        while (Y < 15 and X < 15):
            Y += 1
            X += 1
            if (tablero.posicionVacia(board, X, Y)):
                movimientosPosibles.append([X, Y])
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
                break
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
                movimientosPosibles.append([X, Y])
                break

        #eje y+x-
        X = x
        Y = y
        while (Y < 15 and X > 0):
            Y += 1
            X -= 1
            if (tablero.posicionVacia(board, X, Y)):
                movimientosPosibles.append([X, Y])
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
                break
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
                movimientosPosibles.append([X, Y])
                break

        #eje y-x-
        X = x
        Y = y
        while (Y > 0 and X > 0):
            Y -= 1
            X -= 1
            if (tablero.posicionVacia(board, X, Y)):
                movimientosPosibles.append([X, Y])
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
                break
            elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
                movimientosPosibles.append([X, Y])
                break

    return movimientosPosibles
Exemple #5
0
def getMovimientos(board, x, y):
    posicionInicial = [x, y]
    pieza = tablero.getPieza(board, x, y)
    color = tablero.getColor(pieza)
    movimientosPosibles = []

    if (color == 'black'):
        #cuadrante 1 1º
        X = x
        Y = y

        Y -= 2
        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X, Y])

        #cuadrante 1 2º
        X = x
        Y = y

        Y -= 1
        X += 2
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X, Y])

        #cuadrante 2 1º
        X = x
        Y = y

        Y += 1
        X += 2
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X, Y])

        #cuadrante 2 2º
        X = x
        Y = y

        Y += 2
        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X, Y])

        #cuadrante 3 1º
        X = x
        Y = y

        Y += 2
        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X, Y])

        #cuadrante 3 2º
        X = x
        Y = y

        Y += 1
        X -= 2
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X, Y])

        #cuadrante 4 1º
        X = x
        Y = y

        Y -= 1
        X -= 2
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X, Y])

        #cuadrante 4 2º
        X = x
        Y = y

        Y -= 2
        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X, Y])

    if (color == 'white'):
        #cuadrante 1 1º
        X = x
        Y = y

        Y -= 2
        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X, Y])

        #cuadrante 1 2º
        X = x
        Y = y

        Y -= 1
        X += 2
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X, Y])

        #cuadrante 2 1º
        X = x
        Y = y

        Y += 1
        X += 2
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X, Y])

        #cuadrante 2 2º
        X = x
        Y = y

        Y += 2
        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X, Y])

        #cuadrante 3 1º
        X = x
        Y = y

        Y += 2
        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X, Y])

        #cuadrante 3 2º
        X = x
        Y = y

        Y += 1
        X -= 2
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X, Y])

        #cuadrante 4 1º
        X = x
        Y = y

        Y -= 1
        X -= 2
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X, Y])

        #cuadrante 4 2º
        X = x
        Y = y

        Y -= 2
        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        elif (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X, Y])

    return movimientosPosibles
Exemple #6
0
def getMovimientos(board, x, y):
    posicionInicial = [x,y]
    pieza = tablero.getPieza(board, x, y)
    color = tablero.getColor(pieza)
    movimientosPosibles = []

    if(color == 'black'):
        #eje y-
        X = x
        Y = y

        Y -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X , Y])
        
        #eje y-x+
        X = x
        Y = y

        Y -= 1
        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X , Y])
        
        #eje x+
        X = x
        Y = y

        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X , Y])
        
        #eje y+x+
        X = x
        Y = y

        Y += 1
        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X , Y])
        
        #eje y+
        X = x
        Y = y

        Y += 1
        
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X , Y])

        #eje y+x-
        X = x
        Y = y

        Y += 1
        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X , Y])
        
        #eje x-
        X = x
        Y = y

        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X , Y])
        
        #eje y-x-
        X = x
        Y = y

        Y -= 1
        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'white'):
            movimientosPosibles.append([X , Y])
        
    
    if(color == 'white'):
        #eje y-
        X = x
        Y = y

        Y -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X , Y])
        
        #eje y-x+
        X = x
        Y = y

        Y -= 1
        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X , Y])
        
        #eje x+
        X = x
        Y = y

        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X , Y])
        
        #eje y+x+
        X = x
        Y = y

        Y += 1
        X += 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X , Y])
        
        #eje y+
        X = x
        Y = y

        Y += 1
        
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X , Y])

        #eje y+x-
        X = x
        Y = y

        Y += 1
        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X , Y])
        
        #eje x-
        X = x
        Y = y

        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X , Y])
        
        #eje y-x-
        X = x
        Y = y

        Y -= 1
        X -= 1
        if (tablero.posicionVacia(board, X, Y)):
            movimientosPosibles.append([X, Y])
        if (tablero.getColor(tablero.getPieza(board, X, Y)) == 'black'):
            movimientosPosibles.append([X , Y])
    
    return movimientosPosibles