10. Cubo de Rubik

Crea una función que represente un Cubo de Rubik 3x3 y permita rotar una de sus caras en sentido horario.

Para simplificar el problema, no necesitas simular los colores, solo la posición de los bloques. Puedes representar el cubo como un list de list (una matriz 3x3x3) o una estructura de datos similar que te permita manipular las caras.

def rotar_cara_rubik(cubo: list, cara: str) -> list:
    # `cubo` representaría el estado actual del Cubo de Rubik
    # `cara` podría ser 'F' (frontal), 'R' (derecha), 'U' (arriba), etc.
    # Esta función debería devolver el nuevo estado del cubo
    pass

# Ejemplo de cómo podrías inicializar un cubo (simplificado)
# Representando una cara frontal 3x3:
# [[1, 2, 3],
#  [4, 5, 6],
#  [7, 8, 9]]
# Después de una rotación en sentido horario:
# [[7, 4, 1],
#  [8, 5, 2],
#  [9, 6, 3]]

# Puedes definir tu propia representación del cubo para las 6 caras
# y cómo interactúan las rotaciones entre ellas.

Ratoncito

Implementa la función para rotar una única cara (por ejemplo, la cara frontal) en sentido horario. Puedes ignorar cómo la rotación de una cara afecta a las caras adyacentes por ahora.

Dragón

Extiende la función para manejar la rotación de cualquiera de las 6 caras del cubo, y asegúrate de que las rotaciones actualicen correctamente las caras adyacentes. Si te atreves, también puedes añadir la opción de rotar en sentido antihorario.

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?

Visitors in real time

You are alone: 🐱