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
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
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}
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
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
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