¡Copia este prompt en nuestra Consola de desarrollador para probarlo tú mismo!

Contenido
SystemTu tarea es crear funciones de Python basadas en las solicitudes en lenguaje natural proporcionadas. Las solicitudes describirán la funcionalidad deseada de la función, incluyendo los parámetros de entrada y el valor de retorno esperado. Implementa las funciones de acuerdo con las especificaciones dadas, asegurándote de que manejen casos extremos, realicen las validaciones necesarias y sigan las mejores prácticas para la programación en Python. Por favor, incluye comentarios apropiados en el código para explicar la lógica y ayudar a otros desarrolladores a entender la implementación.
UserQuiero una función que pueda resolver un rompecabezas de Sudoku. La función debe tomar una cuadrícula de Sudoku de 9x9 como entrada, donde las celdas vacías se representan con el valor 0. La función debe resolver el rompecabezas utilizando un algoritmo de backtracking y devolver la cuadrícula resuelta. Si el rompecabezas no tiene solución, debe devolver None. La función también debe validar la cuadrícula de entrada para asegurarse de que es un rompecabezas de Sudoku válido.

Ejemplo de salida

Python
def solve_sudoku(grid):
   def is_valid(row, col, num):
       # Verifica si el número es válido en la fila y columna actual
       for i in range(9):
           if grid[row][i] == num or grid[i][col] == num:
               return False

       # Verifica si el número es válido en la subcuadrícula 3x3 actual
       start_row, start_col = (row // 3) * 3, (col // 3) * 3
       for i in range(3):
           for j in range(3):
               if grid[start_row + i][start_col + j] == num:
                   return False

       return True

   def backtrack(row, col):
       # Si hemos llenado todas las celdas, el rompecabezas está resuelto
       if row == 9:
           return True

       # Pasa a la siguiente fila si hemos llegado al final de la fila actual
       if col == 9:
           return backtrack(row + 1, 0)

       # Si la celda actual ya está llena, pasa a la siguiente celda
       if grid[row][col] != 0:
           return backtrack(row, col + 1)

       # Intenta llenar la celda actual con números del 1 al 9
       for num in range(1, 10):
           if is_valid(row, col, num):
               grid[row][col] = num
               if backtrack(row, col + 1):
                   return True
               grid[row][col] = 0

       # Si no se encuentra un número válido, retrocede
       return False

   # Valida la cuadrícula de entrada
   if not all(len(row) == 9 and all(0 <= cell <= 9 for cell in row) for row in grid):
       return None

   # Inicia el algoritmo de backtracking
   if backtrack(0, 0):
       return grid
   else:
       return None


Solicitud a la API

import anthropic

client = anthropic.Anthropic( # defaults to os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0,
system="Tu tarea es crear funciones de Python basadas en las solicitudes en lenguaje natural proporcionadas. Las solicitudes describirán la funcionalidad deseada de la función, incluyendo los parámetros de entrada y el valor de retorno esperado. Implementa las funciones de acuerdo con las especificaciones dadas, asegurándote de que manejen casos extremos, realicen las validaciones necesarias y sigan las mejores prácticas para la programación en Python. Por favor, incluye comentarios apropiados en el código para explicar la lógica y ayudar a otros desarrolladores a entender la implementación.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Quiero una función que pueda resolver un rompecabezas de Sudoku. La función debe tomar una cuadrícula de Sudoku de 9x9 como entrada, donde las celdas vacías se representan con el valor 0. La función debe resolver el rompecabezas utilizando un algoritmo de backtracking y devolver la cuadrícula resuelta. Si el rompecabezas no tiene solución, debe devolver None. La función también debe validar la cuadrícula de entrada para asegurarse de que es un rompecabezas de Sudoku válido."
}
]
}
]
)
print(message.content)