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
}
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 de aleja26
1