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 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.")
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
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