jueves, 24 de noviembre de 2011

Ligas Puntos Extra

http://tallerdepoo-daniel.blogspot.com/2011/11/actividades-sql.html
http://tallerdepoo-daniel.blogspot.com/2011/11/documentacion-y-auto-generacion-de.html
http://tallerdepoo-daniel.blogspot.com/2011/11/programa-moto.html
http://tallerdepoo-daniel.blogspot.com/2011/11/programa-ejemplo-cafe-patrones-de.html

Programa Ejemplo Café (Patrones de Diseño)

Patrones
View more documents from dgzz.

Programa Moto


Clase Prueba Moto

import java.util.Scanner;

public class PruebaMoto{

    public static void main( String[] args ){

    int opcion;

    Scanner entrada = new Scanner( System.in );

    Moto mimoto = new Moto( "SKA-1234" );


    do{

       System.out.print( "\nIngresa un opcion para la moto\n" );
       System.out.print( "1) Encender\n" );
           System.out.print( "2) Acelerar\n" );
       System.out.print( "3) Frenar\n" );
       System.out.print( "4) Detener\n" );
       System.out.print( "5) Apagar\n" );
       System.out.print( "6) Ver detalles\n" );
       System.out.print( "7) Salir\n\n" );
       opcion = entrada.nextInt();
          
       switch( opcion )
       {
        case 1:
            mimoto.edomoto( 1 );
        break;

        case 2:
            mimoto.acelerar();
        break;

        case 3:
            mimoto.frenar();
        break;

        case 4:
            mimoto.detener();
        break;

        case 5:
            mimoto.edomoto( 0 );
        break;

        case 6:
            mimoto.detalles();
        break;
       }     

    }while( opcion != 7 );   
   }
}




Documentación y Auto-generación de código (Ogro y Príncipe)

Ogro
View more documents from dgzz.

Actividades SQL

Actividades que tratan de obtener las tablas correspondientes, para lo cual, se nos pide elaborar el código necesario para cada tabla.

miércoles, 2 de noviembre de 2011

Eventos

Bueno, estos serían mis eventos, los que funcionan dando un click en su respectivo botón, y así mandar a llamar la clase de cada uno de ellos. Aunque faltan agregar los eventos provocados por el teclado para que el juego funcione.

    public void actionPerformed( ActionEvent evento )
    {
        if( evento.getSource() == jugar ){
        }
       
        if( evento.getSource() == instrucciones ){
            repaint();
            instruccion = new Instrucciones();
            instruccion.setVisible( true );
            instruccion.setSize( 500, 700 );
        }

        if( evento.getSource() == records ){

        }

        if( evento.getSource() == salir ){
            System.exit( 0 );
        }

    }

Conforme avance el proyecto, se iran mostrando más detalladamente los eventos.

Interfaz

Esta sería la ventana del menú, el cuál consta de cuatro botones, Jugar, Instrucciones, Records y Salir.
Aún faltaría darle el formato necesario a los botones, pero sería mas estética, para que se vea bien.


Ventana del botón Instrucciones
Por el momento, me fabrica otra ventana, por lo tanto, tendré que investigar acerca de repaint() o algún otro comando que "limpie" la ventana y espero que funcione, para agregar el botón de menú.

viernes, 30 de septiembre de 2011

Documentación

La documentación fue hecha a partir de javadoc, desde la terminal de Ubuntu (en este caso), buscando dónde tenemos nuestros archivos hasta llegar a esa carpeta, y estando en esa carpeta solo tecleamos javadoc *.java



Generación de Código mediante Umbrello

La generación de código, fue hecha mediante Umbrello, el cual es una herramienta, que nos ayuda en el proceso de la elaboración de nuestro proyecto.

Así mismo, nos ayuda a generar el código de dicho diagrama que hayas creado, y eso puede ser generado  en varios lenguajes, entre los cuales se encuentran:
  • Action Script
  • Ada
  • C++
  • Corba IDL
  • Java
  • JavaScript
  • PHP
  • Phyton
  • SQL
  • Perl
  • XMLSchema
  • entre otros.
 Esto fue el código fuente que me generó Umbrello a partir del diagrama
Clase Color

/**
 * Clase Color
 */
public class Color {

 
  //
  // Constructors
  //
  public Color () { };
 
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

  /**
   * metodo para mover los colores
   */
  public void moverColor1(  )
  {
  }


  /**
   * metodo para mover los colores
   */
  public void moverColor2(  )
  {
  }


  /**
   * metodo para mover los colores
   */
  public void moverColor3(  )
  {
  }


  /**
   * metodo para mostrar la pieza compuesta por distintos o iguales colores
   */
  public void mostrarPieza(  )
  {
  }


  /**
   * metodo para preguntar si desea seguir moviendo los colores
   */
  public void preguntarMover(  )
  {
  }


}




Clase DemoJuego

/**
 * Juego en Lenguaje Java
 *
 * @author Daniel Alexis Donjuan Gonzalez
 *
 */
public class DemoJuego
 {

  /**
   *  creacion de objetos
   */
  public static void main( String[] args ) { };
 
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

}






Clase Jugador

/**
 * Clase Jugador
 */
public class Jugador {

  //
  // Fields
  //

  private String nombre;
 
  //
  // Constructors
  //
  public Jugador () { };
 
  //
  // Methods
  //


  //
  // Accessor methods
  //

  /**
   * Establece el nombre
   * @param newVar el nuevo valor de nombre
   */
  private void setNombre ( String newVar ) {
    nombre = newVar;
  }

  /**
   * Obtiene el valor de nombre
   * @return el valor de nombre
   */
  private String getNombre ( ) {
    return nombre;
  }

  //
  // Other methods
  //



}




Clase Menu

/**
 * Clase Menu
 */
public class Menu {

  private String titulo;
 
  //
  // Constructors 
  /**
   * @param        title
   */
  public void Menu( String title )
  {
  }
  // 
  //
  // Methods
  //


  //
  // Accessor methods
  //

  /**
   * Establece el valor de titulo
   * @param newVar el nuevo valor de titulo
   */
  private void setTitulo ( String newVar ) {
    titulo = newVar;
  }

  /**
   * Obtiene el valor de titulo
   * @return the value of titulo
   */
  private String getTitulo ( ) {
    return titulo;
  }

  //
  // Other methods


  /**
   * metodo solo de impresion para mostar el titulo
   */
  public void mostrarTitulo(  )
  {
  }


}



Herencia

Bueno, aquí están dos códigos en los cuales mostré un avance en mi proyecto(lo fue siendo el demo), y de esta manera se puede apreciar un poco de lo que es la herencia, y de como se utilizan las funciones o métodos.
Como se ve en la clase RandomColor posee tres funciones que regresan un valor, el cual se almacena en la clase Color, para que en la clase Color, se puedan mover los colores de diversas formas.

Clase RandomColor

import java.util.Random;


public class RandomColor
{      
    protected int color1;
    protected int color2;
    protected int color3;

    public void estableceColor()
    {
        Random colorAleatorio = new Random();
        int a[] = new int[ 3 ];
        int almacena;

      
        for( int i = 0; i < 3; i++ ){

            almacena = 1 + colorAleatorio.nextInt( 5 );
            a[ i ] = almacena;


            switch( almacena )
            {
                case 1:
                    System.out.println( "Amarillo" );              
                break;

                case 2:
                    System.out.println( "Rojo" );
                break;

                case 3:
                    System.out.println( "Azul" );
                break;

                case 4:
                    System.out.println( "Verde" );
                break;

                case 5:
                    System.out.println( "Morado" );
                break;
            }
        }
      
        color1 = a[ 0 ];
        color2 = a[ 1 ];
        color3 = a[ 2 ];

        System.out.println();
    }

    public int obtieneColor1()
    {
        return color1;
    }


    public int obtieneColor2()
    {
        return color2;
    }


    public int obtieneColor3()
    {
        return color3;
    }


Diagrama de Clases

lunes, 12 de septiembre de 2011

Esqueleto de Clases


Bueno, como el título lo dice, este esqueleto de clases, o yo lo podría llamar también borrador (puesto a que aun no está definido al cien por ciento), así pienso que serán las clases de mi proyecto. El tipo de modificador de las variables se harán dando a conocer conforme avance al proyecto, al igual que se podrán modificar las clases o métodos, etc.


class DemoJuego

class Juego
->Juego
->Panel

class Jugador
->Nombre
->Puntaje
->Nivel
->Puntos

class Menú

class Figura
->Color
->Imágen

 

sábado, 3 de septiembre de 2011

Ejemplo Moto

Clase Moto


public class Moto{

    private String placa;
    private int condicion;
    private int velocidad = 0;
    private int bateria = 100;


    public Moto( String num ){
        placa = num;
    }
   
    public String obtPlaca()
    {
        return placa;
    }

    public void acelerar()
    {
        velocidad =  velocidad + 20;
    }


    public void frenar()
    {
        velocidad = velocidad - 20;   
    }

    public void detener()
    {
        velocidad = 0;
    }

    public int vidaBateria()
    {
        bateria = bateria - 1;
        return bateria;
    }
   
    public int edomoto( int edo )   
    {   
        if( edo == 1 ){
            condicion = 1;
        return condicion;
        }
        else{
            condicion = 0;
            return condicion;
        }
    }

    public void detalles()
    {
        System.out.print( "Detalles\n\n" );
        System.out.printf( "Placa: %s\n", obtPlaca() );
        System.out.printf( "Bateria : %d\n", vidaBateria() );
       
        if( edomoto(condicion) == 1 ){
            System.out.printf( "Velocidad : %d\n", velocidad );
            System.out.print( "La moto está encendida\n" );
        }
        else{
            System.out.print( "Velocidad : 0\n" );
            System.out.print( "La moto está apagada\n" );
        }    


    }

}

Clase PruebaMoto

import java.util.Scanner;

public class PruebaMoto{

    public static void main( String[] args ){

    int opcion;

    Scanner entrada = new Scanner( System.in );

    Moto mimoto = new Moto( "SKA-1234" );


    do{

       System.out.print( "\nIngresa un opcion para la moto\n" );
       System.out.print( "1) Encender\n" );
       System.out.print( "2) Acelerar\n" );
       System.out.print( "3) Frenar\n" );
       System.out.print( "4) Detener\n" );
       System.out.print( "5) Apagar\n" );
       System.out.print( "6) Ver detalles\n" );
       System.out.print( "7) Salir\n\n" );
       opcion = entrada.nextInt();
          
       switch( opcion )
       {
        case 1:
            mimoto.edomoto( 1 );
        break;

        case 2:
            mimoto.acelerar();
        break;

        case 3:
            mimoto.frenar();
        break;

        case 4:
            mimoto.detener();
        break;

        case 5:
            mimoto.edomoto( 0 );
        break;

        case 6:
            mimoto.detalles();
        break;
       }     

    }while( opcion != 7 );   



    }
}








miércoles, 31 de agosto de 2011

Ejemplo de programa que contiene clases y objetos

// Ejemplo: Cuenta.java

public class Cuenta{
   
    private double saldo;
   
    // constructor
    public Cuenta( double saldoInicial )
    {
        if( saldoInicial > 0.0 )
            saldo = saldoInicial;
    }

    // abona un monto a la cuenta   
    public void abonar( double monto )
    {
        saldo = saldo + monto;
    }

    // devuelve el saldo de la cuenta
    public double obtenerSaldo()
    {
        return saldo;
    } // fin del método

}


Proyecto

En esta materia, llevaré acabo la elaboración de un proyecto en el Lenguaje Java, y de proyecto, haré un juego, similar al magic jewlery, puzzle, columns, entre otros, como se muestran en las siguientes imágenes.



El juego tiene lugar en una especie de estrecho pozo rectangular análogo al de Tetris. Columnas compuestas por tres piezas diferentes (por ejemplo, joyas de distinto color) aparecen, una a la vez, desde la cima del pozo y caen hasta su fondo, aterrizando bien en su base o sobre otras columnas caídas previamente.
Mientras cae, el jugador puede mover la columna a izquierda y derecha, así como rotar las posiciones de las piezas que la componen.




Si tras caer una columna hay en el pozo tres o más piezas iguales conectadas en horizontal, como vertical o diagonalmente, dichas piezas desaparecen; reposicionándose el resto de piezas por efecto de la gravedad. Si dicho reposicionamiento vuelve a provocar que tres o más piezas iguales vuelvan a alinearse, estas también desaparecen y el montón restante vuelve a recolocarse. Este proceso se repite tantas veces como sea necesario. No es raro que esto suceda tres o cuatro veces consecutivas - aunque normalmente se trata de un hecho casual provocado por un gran número de piezas acumuladas en el pozo.


 

Ocasionalmente aparece una columna especial denominada la Joya Mágica. Esta brilla en diferentes colores y, al aterrizar, destruye todas las piezas del mismo color que la que se encuentra bajo ella. Como Tetris, las columnas caen a un ritmo cada vez mayor a medida que el jugador progresa. El objetivo del juego es jugar el mayor tiempo posible antes de que el pozo se llene de piezas.

lunes, 29 de agosto de 2011

Herramientas

En la elaboración del proyecto de la clase de Taller de Programación Orientada a Objetos impartida por la Dra. Sara Elena Garza Villarreal, podemos utilizar como SO (Sistema Operativo) Windows o Ubuntu. En el proceso de diseño de mi proyecto estaré utilizando Ubuntu 11.04, en el cuál, pueden descargar el sun java, dentro del Gestor de paquetes de Synaptic, o bien desde la terminal, solo basta con poner javac, para que la terminal les despliegue una lista de los diferentes paquetes, un ejemplo:

sudo apt-get install opendjkd-6-jdk

ahora que si ustedes piensan usar Windows, pueden descargar el netbeans, dentro de la siguiente linea

http://netbeans.org/downloads/index.html

...

Un ejemplo sencillo de la suma de dos números en java implementado en netbeans

import javax.swing.*;

public class suma{
    public static void main( String[] args ){
       
        String x;
        String y;

        int a;
        int b;
        int c;

        x = JOptionPane.showInputDialog( “Ingresa un numero” );
        a = Integer.parseInt( x );   
   
        y = JOptionPane.showInputDialog( “Ingresa un numero” );
        b = Integer.parseInt( y );

        c = a + b;

        JOptionPane.showMessageDialog( null, “La suma es “ + c );

    }
}





Ahora un ejemplo sencillo de Hola mundo en Ubuntu (desde terminal)

public class hola{
         public static void main( String[] args ){  
         System.out.println( "Hola Mundo!" );
         }
}

 

 

 

se ejecuta desde la terminal, como el archivo está guardado en escritorio, tenemos que abrir esa carpeta:

cd Escritorio

una vez que se haya abierto la carpeta de Escritorio o donde hayan guardado el archivo del programa, es necesario compilarlo, para esto la siguiente línea

javac nombre_del_archivo.java

en este caso

javac hola.java

si no hay ningun error, la terminal te deja continuar, de lo contrario te dirá donde están los errores, y por ultimo para ejecutarlo, la siguiente línea

java hola
y así tenemos nuestro programa compilado y ejecutado.





 
Ahora el mismo programa pero, con interfaz. El proceso de compilación es el mismo, y por ende el de la ejecución también, solo cambia, el código, como se puede apreciar:

import javax.swing.*;
public class hola{
        public static void main( String[] args ){
        JOptionPane.showMessageDialog( null, "Hola Mundo!" );
        }
}