import java.util.*; /** * Representacion completa de un cubo rubik, incluye su representacion logica * y grafica, ademas de metodos que sirven para manipular ambas representaciones * de manera mas simple y coordinada. */ //OOOOJOOOOOO AQUI public class CuboRubik { /** * Modelo logico asociado al cubo rubik. */ private ModRubik modelo; /** * Modelo grafico asociado al cubo rubik. */ private FigRubik figura; //private Algoritmo algoritmo; /** * Construye un cubo rubik completo, con sus dos representaciones (grafica * y logica). */ public CuboRubik() { modelo = new ModRubik(); figura = new FigRubik(modelo); //algoritmo = new Algoritmo(modelo); //modelo.desordenar(); //TEST //analizador = new Analizador(modelo); } /* public int etapaTerminada() { return algoritmo.inicializar(); }*/ /** * Retorna el modelo grafico asociado al cubo rubik. * @return El modelo grafico asociado al cubo rubik. */ public FigRubik getFigura() { return figura; } /** * Retorna la lista de Triangulos que deben ser dibujados en pantalla. * @return La lista de Triangulos que deben ser dibujados en pantalla. */ public ArrayList getTrianList() { ArrayList tList = figura.getTrianList(); return tList; } /** * Gira el cubo (grafico) tantos 'grados', dependiendo del String 'com', * se detenminara que tipo de giro es (cubo completo o solo una de sus capas). */ public void moverFig(String com, float grados) { figura.mover(com, grados); } /** * La misma finalidad que 'moverFig' pero aplicado al modelo logico del cubo. */ public void moverMod(String com) { modelo.mover(com); } /** * Es llamado cuando se completa un giro de 90 grados del FigCubo, esto evita * que se acumulen errores por el redondeo de los float. */ public void ajustar() { figura.ajustar(); } /** * Repinta las caras de la figura para que coincidan con el modelo logico. */ public void pintar() { figura.pintar(); } /** * Desordena los colores del cubo logico y luego repinta la figura. */ public void mezclar() { modelo.desordenar(); figura.pintar(); } /** * Crea un nuevo ModCubo ordenado y luego repinta la figura. */ public void nuevo() { modelo = new ModRubik(); figura.setModelo(modelo); figura.pintar(); } }