예제 #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
예제 #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
예제 #3
0
def getPuntosPorMovimiento(board, pieza, movimiento):
    try:
        if (pieza == 'p'):
            if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
                return getPuntosPieza(pieza) + movimiento[1]
        if (pieza == 'P'):
            if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
                return getPuntosPieza(pieza) + 15 - movimiento[1]
        if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
            return getPuntosPieza(pieza)
        else:
            piezaEnemiga = tablero.getPieza(board, movimiento[0],
                                            movimiento[1])
            if (tablero.campoEnemigo(piezaEnemiga, movimiento[1])):
                return getPuntosPieza(piezaEnemiga) * 1200
            else:
                return getPuntosPieza(piezaEnemiga) * 1200
    except:
        print("Simulacion: Error al obtener puntos por movimiento.")
예제 #4
0
def getPuntosPorMovimiento(board, pieza, movimiento):
    if (pieza == 'p'):
        if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
            puntos = getPuntosPieza(pieza) + movimiento[1] + 100
            if (movimiento[1] == 7):
                puntos += 1000
            return puntos
    if (pieza == 'P'):
        if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
            puntos = getPuntosPieza(pieza) + 15 - movimiento[1] + 100
            if (movimiento[1] == 8):
                puntos += 1000
            return puntos
    if (pieza == 'q'):
        if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
            puntos = getPuntosPieza(pieza)
            if (movimiento[1] == 8):
                puntos += 100
                return puntos
    if (pieza == 'Q'):
        if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
            puntos = getPuntosPieza(pieza)
            if (movimiento[1] == 7):
                puntos += 100
                return puntos
    if (pieza == 'k'):
        if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
            puntos = 100
            return puntos
    if (pieza == 'K'):
        if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
            puntos = 100
            return puntos

    if (tablero.posicionVacia(board, movimiento[0], movimiento[1])):
        return getPuntosPieza(pieza)
    else:
        piezaEnemiga = tablero.getPieza(board, movimiento[0], movimiento[1])
        if (tablero.campoEnemigo(piezaEnemiga, movimiento[1])):
            return getPuntosPieza(piezaEnemiga) * 3000
        else:
            return getPuntosPieza(piezaEnemiga) * 1000
예제 #5
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
예제 #6
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
예제 #7
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