Ayuda con este Programa !

El siguiente programa arroja un puzzle del 1-15
La ayuda que necesito es para hacer una documentación de este programa, a que me refiero, lo que necesito es explicar lo que hace, no linea por linea sino explicar los puntos más importantes de este: Por ejemplo... En la linea por se encuentra la clase tal y el paquete tal y así con todo el programa.
Agradecería alguien me pudiera ayudar con esto. Los puntos a realizar son: Identificar las clases y paquetes y especificar en donde se encuentran (que linea del programa), ¿encontrar las palabras reservadas y decir cuales son?, los métodos en el código su pertenencia a cada clase y describir lo que hacen, las interfaces ultilizadas (cuales son).
Estés es el programa... Si tuviera algún problema con el código también agradecería la ayuda. Mi nivel de programación es muy abajo, si podrían explicarme paso a paso lo agradecería.
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
/**
*
* @author Alejandro
*/
public class Puzzle extends Applet implements KeyListener {
int width;
int height;
int cw;
int ch;
int mat[][]={{1,3,4,2},{7,5,8,6},{11,9,12,10},{15,14,13,0}};
int mh=mat.length;
int mw=mat[0].length;
int currentIndexColumna=3;
int currentIndexRenglon=3;
/**
* Initialization method that will be called after the applet is loaded
* into the browser.
*/
// @Override
public void init() {
this.addKeyListener(this);
// TODO start asynchronous download of heavy resources
}
public void clearScreen(Graphics g){
g.setColor(Color.WHITE);
g.fillRect(0,0,this.getWidth(),this.getHeight());
g.setColor(Color.BLACK);
}
@Override
public void paint(Graphics g){
width=this.getWidth();
height=this.getHeight()-20;
cw=width/mw;
ch=height/mh;
clearScreen(g);
String etiqueta;
for(int renglon=0;renglon<mh;renglon++){
for(int columna=0;columna<mw;columna++){
if(mat[renglon][columna]!=0){
g.setColor(Color.BLACK);
g.drawRoundRect(columna*cw,renglon*ch,cw,ch,10,10);
g.setColor(Color.GRAY);
etiqueta=String.valueOf(mat[renglon][columna]);
int esquinaCuadroSuperiorIzquierdaX=columna*cw;
int esquinaCuadroSuperiorIzquierdaY=renglon*ch;
int centerX=esquinaCuadroSuperiorIzquierdaX+(cw/2);
int centerY=esquinaCuadroSuperiorIzquierdaY+(ch/2);
g.drawString(etiqueta, centerX, centerY);
}
}
}
}
public void keyTyped(KeyEvent e){
throw new UnsupportedOperationException("Not supported yet.");
}
public void keyPressed(KeyEvent e){
//throw new UnsupportedOperationException("Not supported yet.");
}
public void keyReleased(KeyEvent e){
int keyCode=e.getKeyCode();
//System.out.println(e);
//movimiento hacia arriba del cero
if (keyCode==KeyEvent.VK_DOWN && currentIndexRenglon>0){
mat[currentIndexRenglon][currentIndexColumna]=mat[currentIndexRenglon-1][currentIndexColumna];
currentIndexRenglon=currentIndexRenglon-1;
}
//movimiento hacia abajo del cero
else if(keyCode==KeyEvent.VK_UP && currentIndexRenglon<(mh-1)){
mat[currentIndexRenglon][currentIndexColumna]=mat[currentIndexRenglon+1][currentIndexColumna];
currentIndexRenglon=currentIndexRenglon+1;
}
//movimiento a la izquierda
else if(keyCode==KeyEvent.VK_RIGHT && currentIndexColumna>0){
mat[currentIndexRenglon][currentIndexColumna]=mat[currentIndexRenglon][currentIndexColumna-1];
currentIndexColumna=currentIndexColumna-1;
}
//movimiento a la derecha del cero
else if(keyCode==KeyEvent.VK_LEFT && currentIndexColumna<(mw-1)){
mat[currentIndexRenglon][currentIndexColumna]=mat[currentIndexRenglon][currentIndexColumna+1];
currentIndexColumna=currentIndexColumna+1;
}
mat[currentIndexRenglon][currentIndexColumna]=0;
repaint();
}
// TODO overwrite start(), stop() and destroy() methods
}

1 respuesta

Respuesta
1
Lo ideal en tu caso, en mi opinión, es que hicieras el Javadoc del programa. Un Javadoc es una forma de documentación en formato HTML que muestra información sobre las clases, atributos, métodos, etc.. de un programa Java. Aquí puedes ver un ejemplo (para la clase String):
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html
Más información aquí:
http://es.wikipedia.org/wiki/Javadoc
http://java.sun.com/j2se/javadoc/
Lo bueno de los Javadoc es que se generan automáticamente utilizando la IDE adecuada (por ejemplo, eclipse o netbeans) ya que no sería sencillo hacer ese tipo de HTML manualmente. Info aquí:
http://luauf.com/2008/06/21/generar-javadoc-con-eclipse-y-netbeans/
El programador sólo tiene que poner la información de cada clase, método, etc... con los comentarios especiales que puedes ver en el primer link de información. Después la IDE genera todos los HTML. El Javadoc contendrá toda la información que estás pidiendo (excepto eso de las palabras reservadas, que puedes hacerlo aparte o meterlo en la descripción de la clase, en los comentarios, para que salga en el Javadoc).
Creo que es la solución ideal y de casi menos trabajo. Cualquier otro tipo de documentación tendría que ser hecha manualmente.
Hola
Leí la recomendación que me das y por lo que veo es la mejor opción para obtener los datos que quiero y de una manera muy rápida. La verdad nunca he creado un Javadoc, pero bueno por algo se empieza, espero poder crearlo sin ningún problema checando los links que me mandaste. Cualquier duda espero me ayudes..(aunque no parece tan complicado, pero ya sabes cuando estas empezando tienes infinidad de preguntas). En estos días tratare de hacerlo y te comentare como me fue ok.
De todas maneras agradecería que me pudieran ayudar con la documentación manualmente o con un link donde si es posible venga un tutorial para crear un javadoc paso a paso. (No se si en algunos de los links que menciona venga algo como lo que pido por que no los he checado... si es así lo agradezco... si no... espero me puedan recomendar otra pag más fácil de entender).
Gracias por la ayuda. Un saludo
Sí, en los links puedes ver lo necesario.
Aquí puedes ver qué comentarios se usan para que aparezcan en el javadoc:
http://es.wikipedia.org/wiki/Javadoc
Y aquí como se genera en Netbeans o Eclipse:
http://es.wikipedia.org/wiki/Javadoc
Lo mejor de todo es que la generación es muy rápida así que puedes hacer pruebas continuas para ver cómo va quedando y aprender a poner bien los comentarios

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas