martes, 30 de agosto de 2011

Esqueleto de mi Proyecto (1ra Entrega)

Saludos companieros!!

Tengo un proyecto en mente y espero acabarlo para entregarlo a tiempo, mi proyecto trata de simulacion de un cubo rubik como este:
claro que no se vera asi tridimensionalmente, primero empezare con algo sencillo como por ejemplo, mostrar las 6 caras de forma de cubo estirado en 2d. Lo principal que tengo contemplado es la simulacion del cubo y sus movimientos para que el usuario pueda moverlo libremente hasta armarlo.

Este software la tenia contemplada en 4 clases pero resultaron ser mas, las mas importantes para la realizacion del cubo son las de los movimientos, que es una clase por cada cara. Estas clases contienen las intrucciones de como se movera cada cara del cubo. Las clases de movimientos las tenia en una misma clase hasta que vi que era un amontonadero, y era tedioso andar buscando donde estaba el error asi que decidi separarlos, tambien queria usarlo como una superclase, cosa que no hice por que eran varias clases, asi que mejor herede de JFrame para que me ayudara con las cosas graficas.

Despues tengo la clase GraficasCubito que genera las caras, independientemente de donde se encuentre, para esto tuve que deshacer la cara en cada cuadro, lo que hago es un barrido de todas las caras y consigo cada color de cada cara y dependiendo de la posicion en la que este en la matriz, calculara su valor en pixeles y lo acomodara mandandolo ala funcion predeterminada que realiza los cuadros

y la clase PruebaCubo, que contiene el constructor, el que genera las ventana botones, eventos, etc. esta es como el cubo en si, quien llama a las acciones para realizar su trabajo
aqui es como se veria en codigo en esqueleto

public class MueveLadoX{


  public void muevelo(recibe como argumentos las caras a mover){


*utilizo 4 vectores como ayudantes para extraer los colores y moverlos,

            ayudante[ 0 ] = LD [ 0 ] [ 0 ];
           ayudante[ 1 ] = LD [ 0 ] [ 1 ];
            ayudante[ 2 ] = LD [ 0 ] [ 2 ]; // para poder moverlo

*que despues lo pongo en otra posicion y esto para mover los colores de los lados

            ayudante[ 0 ] = LS [ 0 ] [ 2 ];
ayudante[ 1 ] = LS [ 1 ] [ 2 ];
ayudante[ 2 ] = LS [ 2 ] [ 2 ];//rojo
ayudante2[ 0 ] = LT [ 0 ] [ 2 ];
ayudante2[ 1 ] = LT [ 1 ] [ 2 ];
ayudante2[ 2 ] = LT [ 2 ] [ 2 ];//amarillo
ayudante3[ 0 ] = LIN [ 0] [ 0 ];
ayudante3[ 1 ] = LIN [ 1 ] [ 0 ];
ayudante3[ 2 ] = LIN [ 2 ] [ 0 ];//naranja
ayudante4[ 0 ] = LF [ 0 ] [ 2 ];
ayudante4[ 1 ] = LF [ 1 ] [ 2 ];
ayudante4[ 2 ] = LF [ 2 ] [ 2 ];//blanco


*y despues llamo a otro metodo de otra funcion para actualizar estos movimientos



           graficos.actualizarLadoSuperior(LD);
graficos.actualizarLadoFrontal(LS);
graficos.actualizarLadoDerecho(LT);
graficos.actualizarLadoTrasero(LIN);
graficos.actualizarLadoIzquierdo(LF);



}//termina el metodo muevelo
}//termina la clase

y asi para las demas clases de movimientos igual, solo que reciben diferentes caras como argumento, dependiendo del lado que sea

y para lo de los graficos

public class Graficos{
     public void pinta(){
     genera los cuadros de todas las caras
     y llama a las funciones para poder hacerlo }

     public void repinta(){
     despues de que haya una actualizacion, se llama a esta clase para repintarla
     }
     public void obtenLasCoordenadas(que recibe el color de la cara){
       aqui recibe el color de la cara desde pintar() que saca los colores de cara por cara
       y la almacena en un vector como ayuda
     }
     public void establececoordenadas(recibe la posicion del color){
          lo qu ehace es recibir la posicion en la matriz y la cara, y genera un valor en pixeles
     }
     public void obtencolor(el color){
     este es llamado por el cubo para que regrese las caras con sus valores
     }
     public void actualizaCara(Cara){
     solo es llamada cuando una cara es modificada, para que tenga efecto, los colores estan en esta clase
     }

*La clase Cubo es la que contiene todo lo del cubo como ventanas y botones

public class Cubo que hereda de JFrame{


   contructor Cubo(){
   que genera la ventana, botones, y los eventos de los botones asi como genera los que es el cubo
                    panelDerecho.add(botonRojo);
panelDerecho.add(botonBlanco);
panelDerecho.add(botonVerde);
panelDerecho.add(botonAmarillo);
panelDerecho.add(botonAzul);
panelDerecho.add(botonNaranja);


Container ventana = getContentPane();
        ventana.add(gr,BorderLayout.CENTER);
ventana.add(panelbotones, BorderLayout.SOUTH);
ventana.add(panelDerecho, BorderLayout.EAST);
setSize(450,400);
setVisible(true);
System.out.println("creo la ventana");
 

 tambien contiene el main que llama al constructor

public static void main(String args[]){
llama al constructor
Cubo c = new Cubo();contructor
pc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

ese seria el esqueleto de mi proyecto espero que este entendible, saludos.

miércoles, 10 de agosto de 2011

Como instalar Emacs y OpenJDK en ubuntu desde la terminal (1ra Entegra)

Companieros aqui publicare la manera facil de instalar el editor Emacs y el jdk todo haciendolo de la terminal. El jdk se necesita para poder compilar y correr codigo fuente java que se puede descargar desde la pagina oficial http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u1-download-513651.html que se puede descargar tanto para windows como para linux de cualquier arquitectura.

pero yo lo hare desde una terminal que es mucho mas sencillo ya que esta en los repositorios de ubuntu.
yo usare un opensource de jdk que se llama openjdk
http://openjdk.java.net/

Lo primero que haremos sera instalar el emacs http://www.gnu.org/s/emacs/
no lo olviden todo como super-usuario o usuario root, esto se hace poniendo sudo antes de la instruccion:

sudo apt-get install -y emacs

Esto buscara en los repositorios y lo descargara y lo instalara automaticamente


Ahi ya quedo instalado para poder verificar que si se instalo pongan emacs en la terminal para que se abra.

Despues de aver instalado emacs tenemos que instalar el jdk que contiene todos los paquetes de java para eso pondremos

sudo apt-get install openjdk-6-jdk o openjdk-7-jdk que ya se encuentra actualmente disponible y acontinuacion se descargara y se instalara automaticamente.
Para verificar si se ha instalado correctamente ingresamos en la terminal java -version y saldra la version de java que tenemos instalado o podemos checar un codigo fuente para ver si se instalo correctamente, en mi caso utilice un codigo fuente de la red lo compile y lo corri y funciono correctamente.


si en dado caso no queremos trabajar con la terminal y queremos de un ide diferente podrian instalar eclipse de la misma manera solo poniendo en la terminal esta instruccion o tambien descargandolo de su pagina oficial http://www.eclipse.org/downloads/ que automaticamente detectara tu SO o asi fue en mi caso. tambien pueden descargar otro ide http://netbeans.org/ el que sea de su gusto.

yo instale el eclipse en mi maquina con esta intruccion en la terminal:
sudo apt-get install -y eclipse
despues ponen su contrasenia de usuario root y empieza a instalarse automaticamente. Solo que este esta un poco mas pesado aprox 300 mb.

ya habiendo terminado busquenlo en sus aplicaciones y ya puede trabajar

si en dado caso quiere instalarlo manualmente, solo bajan el instalador y ya con el centro de software que viene predeterminado en ubuntu ayudara mucho y lo instalara tambien de manera automatica

por mi parte es todo, aqui les dejo otro tuto por si lo necesitan http://johnbokma.com/mexit/2011/06/24/oracle-java-jdk-installation-ubuntu.html 
saludos espero les haya ayudado en algo.