Top Banner
SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE Versión: 02 Código: GFPI-F- 019 ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION. Versión: 0.1 Nombre del Proyecto: Código: Fase del proyecto: UNIDAD 1 Actividad (es) del Proyecto: Actividad (es) de Aprendizaje: Ambiente de formación ESCENARIO (Aula, Laboratorio, taller, unidad productiva) y elementos y condiciones de seguridad industrial, salud ocupacional y medio ambiente MATERIALES DE FORMACIÓN DEVOLUTIVO (Herramient a - equipo) CONSUMIBLE (unidades empleadas durante el programa) Resultados de Aprendizaje: Vectores y matrices. Competencia: Vectores y matrices. Aula de teleinformáti ca, centro de Automatizació n Industrial REGIONAL CALDAS. Computador, con compiladore s de código JAVA instalado, en este caso: Netbeans, o Eclipse. UNIDAD 1 Duración de la guía ( en horas): 4 Horas Un ordenador no solo es una máquina que puede realizar procesos para darnos resultados, Página 1 de 19 GUÍA DE APRENDIZAJE Nº01 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE
19

GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

Jul 18, 2016

Download

Documents

Yaneth Mejia

Guia de Aprendizaje ADSI Java Vectores y Matrices dimensionales y bidimensionales
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN

Procedimiento Ejecución de la Formación Profesional IntegralGUÍA DE APRENDIZAJE

Versión: 02

Código: GFPI-F-019

Programa de Formación:ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION.

Código: 578756Versión: 0.1

Nombre del Proyecto: Código:

Fase del proyecto: UNIDAD 1

Actividad (es) del Proyecto:

Actividad (es) de Aprendizaje:

Ambiente de formación ESCENARIO (Aula, Laboratorio, taller, unidad productiva) y elementos y condiciones de seguridad industrial, salud ocupacional y medio ambiente

MATERIALES DE FORMACIÓNDEVOLUTIVO (Herramienta - equipo)

CONSUMIBLE (unidades empleadas durante el programa)

Resultados de Aprendizaje:Vectores y matrices.

Competencia: Vectores y matrices.

Aula de teleinformática, centro de Automatización Industrial REGIONAL CALDAS.

Computador, con compiladores de código JAVA instalado, en este caso: Netbeans, o Eclipse.

UNIDAD 1

Duración de la guía ( en horas): 4 Horas

Un ordenador no solo es una máquina que puede realizar procesos para darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza para llegar a los resultados, sino que también nos permite diseñar soluciones a la medida de problemas específicos que se nos presenten.

Más aún, si estos involucran operaciones matemáticas complejas y/o repetitivas, o requieren del manejo de un volumen muy grande de datos. El diseño de soluciones a la medida de nuestros problemas, requiere como en otras disciplinas una metodología que nos enseñe de manera gradual, la forma de llegar a estas soluciones. A las soluciones creadas por computadores se les conoce como programas y, no son más que una serie de operaciones que realiza el ordenador para llegar a un resultado, con un grupo de datos específicos.

Lo anterior nos lleva al razonamiento de que un programa nos sirve para solucionar un problema específico. Para poder realizar programas, también debemos de conocer de manera específica las soluciones que puede realizar la computadora y las formas en se pueden manejar los elementos que hay en la misma. Ahora lo invito a desarrollar las actividades a alcanzar con los objetivos

Página 1 de 15

GUÍA DE APRENDIZAJE Nº01

1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Page 2: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

de esta fase del proyecto con actitud crítica, argumentativa y propositiva.

3.1 Actividades de contextualización e identificación de conocimientos necesarios para el aprendizaje.)

Solucionar algoritmos no numéricos y numéricos con su respectivo pseudocódigo explicado. Todo el código debe de estar comentado, implementando nemotecnia en todos los nombres de variables y métodos que vaya a implementar para la ejecución del programa.

3.2 Actividades de apropiación del conocimiento (Conceptualización y Teorización).

REALIZAR UNA CARTA DE PRESENTACIÓN - CASO EJEMPLO

3.3 Actividades de transferencia del conocimiento.  Realizar el modelo conceptual de la solución propuesta Realizar algoritmos utilizando variables, constantes, bucles, contadores, acumuladores, arrays unidimensional,

bidimensional o multidimensional según la necesidad de su seudocódigo. Realizar algoritmos utilizando atributos, objetos y métodos comentados e implementando la buena costumbre de la

nemotécnica.

3.4 Actividades de evaluación.

1. TRIQUI EN MATRIZ CUADRATICA Juego entre dos jugadores: O y X, que marcan los espacios de un tablero de 3×3 alternadamente. Un jugador gana si consigue tener una línea de tres de sus símbolos: la línea puede ser horizontal, vertical o diagonal. Una partida ganada por el primer jugador, X:

Una partida que termina en empate:

Cada jugador consta de tres piezas. Por turnos, cada uno coloca sus piezas, cuando todas están en el tablero, empiezan a moverse por turno. El primero que logra hacer una fila con sus tres piezas, gana.PROGRAMA A DESARROLLAR:

A. Crear una matriz cuadrática inicial tipo String, que se le muestra al usuario de la siguiente forma:

FILAS \ COLUMNAS 0 1 2

Página 2 de 15

3. ESTRUCTURACION DIDACTICA DE LAS ACTIVIDADES DE APRENDIZAJE

Page 3: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

0 ? ? ?1 ? ? ?2 ? ? ?

B. El signo de interrogación indicando que aun el programa desconoce la jugada a ingresar por parte del usuario.

Recuerde que necesita leer los datos de entrada por parte del usuario. Necesitará hacer uso de la función Scanner o BufferedReader:

Scanner entradaUsuario = new Scanner(System.in); BufferedReader recibir=new BufferedReader (new InputStreamReader(System.in)); Ejemplo: System.out.println("Es el turno del jugador X."); System.out.println(" fila."); int dato_fila = Integer.parseInt(recibir.readLine());

C. Deberá validar que mientras el número de jugadas sea menor o igual a 9, para esto, cree una variable entera, que cumpla la función de contador de jugadas.

D. Mostrar un mensaje que diga: Es el turno del jugador X. Pedir que el ingrese la fila y la columna a jugar y leer la posición que ingrese.

E. No cierre la condición del punto C hasta que se le indique.F. Ahora esa posición que el usuario le acaba de ingresar, debe buscarla en la matriz y ver si ya estaba jugada, es decir, si

ya contiene el valor de X o el valor de O, y si si lo tiene, solicitarle al usuario nuevamente que ingrese una fila y una columna, esto lo puede hacer mediante un ciclo de la siguiente forma, recuerde volver a solicitarle al usuario una posición de jugada:

while (matriz_triqui [dato_fila][dato_columna]== "X" || matriz_triqui [dato_fila][dato_columna]== "O" ) { System.out.println("A ingresado una jugada en donde YA existía una anteriormente");

}G. Si la anterior iteración no se cumple, le asigna a la posición en la matriz que el usuario ingreso una X. Y vuelve a

imprimir la matriz con todas sus posiciones, mostrando las que ya están jugadas. Ejemplo de asignación de elemento al índice jugado: matriz_triqui [dato_fila][dato_columna] = "X";

H. Ahora con la misma variable tipo entero que valido el número de jugadas del punto C., aumente en 1 su contador para indicar que el usuario continúa con otra jugada.

I. Valide con que tipos de jugadas el usuario completaría el triqui y seria el ganador. Esto lo puede hacer mediante una secuencia de IF que le permita validar cuales posiciones de la matriz tienen valor X y en qué orden. Ejemplo: if (matriz_triqui [0][0]== "X" && matriz_triqui [0][1]== "X" && matriz_triqui [0][2]== "X") { System.out.println ("El ganador es el jugador 'x'."); break; }Serian 8 validaciones de jugadas completas en línea completa horizontal, o vertical o diagonal.

J. Luego de esto, pregunte si el contador del número de jugadas del punto C. ya va en 9, en caso de que si, haga un break a la condición.

K. Ahora bien, no hemos hablado del segundo jugador que sería el encargado de poner O, pues este jugador incognito es la máquina. Es decir que su computador deberá responderle a la jugada del usuario, tapándole la posición indicada de la matriz, para que este no complete la línea y gane.

L. Muestre un mensaje que le indique al usuario: Es el turno de la máquina.M. La máquina deberá atacar con una posición aleatoria:

System.out.println(" Maquina está seleccionando la fila"); int dato_fila_maquina; dato_fila_maquina = (int)(Math.random()*3)+0;Lo mismo se hace con columna. Imprima la fila y columna finalmente elegida por la máquina.

N. Haga la misma validación del punto D., adecuándola ya no a la jugada del usuario, si no de la máquina.

Página 3 de 15

Page 4: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

while (&& matriz_triqui [dato_fila_maquina][dato_columna_maquina] == "O" || && matriz_triqui [dato_fila_maquina][dato_columna_maquina] == "X" ) { // vuelva a calcular posición aleatoria por la máquina, fila y columna // Muestre al usuario, la posición aleatoria escogida por la máquina.}

O. Si la anterior iteración no se cumple, le asigna a la posición en la matriz que el usuario ingreso una O. Y vuelve a imprimir la matriz con todas sus posiciones, mostrando las que ya están jugadas. Ejemplo de asignación de elemento al índice jugado: matriz_triqui [dato_fila_maquina][dato_columna_maquina] = "O";

P. Imprime nuevamente la matriz con todas sus posiciones y jugadas hasta el momento. Y repite el punto F para llevar cuenta del total de jugadas permitidas y que ya se han hecho.

Q. Ahora bien, las mismas validaciones del punto G de las jugadas de línea completa con las que ganaría el usuario, las debe de hacer, pero aplicando en el caso de la máquina. Recuerde que son 9 líneas las que se pueden contemplar como posibles jugadas ganadoras. Ejemplo: if (matriz_triqui [0][0]== "O" && matriz_triqui [0][1]== "O" && matriz_triqui [0][2]== "O") { System.out.println("El ganador es la maquina"); break; }

R. Valida si el contador de jugadas permitidas del punto C son iguales a 9, en casi de que si, hace un break.S. Ya puede cerrar la iteración del punto C.T. Idee más validaciones que le permita a la máquina, tapar las jugadas que pueden completar línea del usuario. Es decir,

que no solo juegue hacer línea ella también, si no que además, ataque la jugada del usuario, cerrándole la línea.

2. Diseñe un programa que le pide al usuario el tamaño del arreglo, y de acuerdo al número ingresado, pide ingrese posición por posición cada elemento que compone el arreglo, se va a trabajar con valores reales.Imprima un mensaje mostrándole al usuario en orden los elementos que el ingresó y que ya componen el arreglo.Luego diseñe un método que invierta el arreglo que acaba de imprimir, e imprima el nuevo arreglo.

3. Llenamos el array de tamaño fijo 20, con números pares. Utilizamos un contador, con valor inicial 2 y le sumamos dos en cada iteración. Es decir, que el primer número del arreglo seria 2 y el último número de la posición 19 (teniendo en cuenta que la primer posición en todo array es cero (0)) seria 40.

4. Copie y ejecute el siguiente código en su compilador de JAVA, realice el seguimiento del código, practique los comentarios y la nemotecnia, modificando nombres de métodos y variables y comentado la función de cada uno de ellos, haciendo que el código sea entendible para cualquier persona, modifique también los mensajes del JOptionPane, permitiéndole conocer al usuario con que opción ve todas las tablas de multiplicar hasta el 10, cuando ve la que el digite, o cuando hay un error porque no está entre el rango el número que el ingreso:

package tablasmultiplicar;

import java.io.IOException;import javax.swing.JOptionPane;

/** * * @author yanet_000 */

Página 4 de 15

Page 5: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

public class TablasMultiplicarCopia {int[][] tabla = new int[10][10];int dato1 = tabla.length;int dato2 = tabla[0].length;

void MetodoUno() { int i = 0, j = 0; for(i = 0;i < dato2; i++) { tabla[0][i] = i+1; tabla[i][0] = i+1; }

for(i = 1;i < dato2; i++) { for(j = 1; j < dato1; j++) tabla[i][j] = tabla[0][j] * tabla[i][0]; } }

void MetodoDos(int n) { int i = 0, j = 0; String matrizArray = ""; if(n == 0) { for(i = 0;i < dato2; i++) { for(j = 0; j < dato1; j++) { if(tabla[i][j] >= 10) matrizArray = matrizArray+"["+tabla[i][j]+"] "; else matrizArray = matrizArray+"["+tabla[i][j]+" ] "; } matrizArray = matrizArray+"\n\n"; } JOptionPane.showMessageDialog(null, matrizArray, "Tabla de multiplicar", JOptionPane.INFORMATION_MESSAGE); } else if(n > 0 && n <= 10) { for(i = 0;i < dato2; i++) matrizArray = matrizArray+(n)+" * "+(i+1)+" = "+tabla[n-1][i]+"\n"; JOptionPane.showMessageDialog(null, matrizArray, "Tabla de multiplicar: "+n,

Página 5 de 15

Page 6: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

JOptionPane.INFORMATION_MESSAGE); } else JOptionPane.showMessageDialog(null, "Tabla de multiplicar", "#FAIL", JOptionPane.INFORMATION_MESSAGE); }

public static void main(String[] args) throws IOException { int n; String opc = ""; TablasMultiplicarCopia dato3 = new TablasMultiplicarCopia(); dato3.MetodoUno();

JOptionPane.showMessageDialog(null, "Punto 4 de la Guia de aprendizaje", "Instructor(a): Yaneth MR", JOptionPane.INFORMATION_MESSAGE);

do { opc = JOptionPane.showInputDialog("0 = Toda la tabla\nEscribe un numero 1-10 " + "\nEscribre SALIR para terminar el programa"); opc = opc.toUpperCase(); if(opc.equals("SALIR")) { JOptionPane.showMessageDialog(null, "No me cierres :'(", "FINALIZAR", JOptionPane.INFORMATION_MESSAGE); break; }

n = Integer.parseInt(opc); dato3.MetodoDos(n);

}while(!opc.equals("salir")); } }

5. Como punto final de este instrumento de evaluación, vamos a desarrollar el programa de la serpiente que come manzanas, para el ejemplo base que les daré, implemente 2 clases, Frame y Panel.

A. Primero vamos a crear un panel que nos permita visualizar en un applet el juego. Para el ejemplo implemente una clase de nombre Frame.import javax.swing.*;public class Frame extends JFrame { // Metodo constructor Frame(JPanel panel) { setTitle("SNAKE YANETH MEJIA"); this.setContentPane(panel);

Página 6 de 15

Page 7: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // para poder cerrar el applet this.setResizable(false); this.setBounds(0, 0, 810, 350);// tamaño del applet this.setVisible(true); }}

B. La clase panel, extiende de JPanel e implementa la clase keyListener, la cual nos permitirá darle escucha a las variables creadas, en el símbolo de advertencia seleccione el implementar todos los métodos abstractos, borrándole la linea de código: throw new UnsupportedOperationException("Not supported yet."); dejando el método vacio, solo su declaración.

public class Panel extends JPanel implements KeyListener{

int n = 80, m = 24; JButton[][] btn = new JButton[n][m]; // vamos a instanciar una matriz tipo botón JTextField t = new JTextField(); JLabel label = new JLabel("Puntaje = 0"); // muestra el contador inicial en ceros

int CabezaX = 0; //pone cabeza de la serpiente en eje x int CabezaY = 0; //pone cabeza de la serpiente en eje y int manzanaX; //pone manzana en eje x int manzanaY; //pone manzana en eje y Mover mov = new Mover(); //se pone instancia de mover ListaSimple lista = new ListaSimple(); // se crea una lista simple int puntos = 0; //contador de la cantidad de manzanas que ha consumido String marcha = "derecha";

C. Cree un nuevo método de nombre Nodo. Dentro de este, declare las variables enteras que le mencionare más adelante, tres de esos cuatro componentes se pueden examinar y modificar mediante los métodos getter y setter: private int x; private int y; private int codigo; Nodo sig;Cree los métodos getter y setter solo para las variables:X, Y y código. Para esto de clic secundario, del menú desplegable seleccione Refactor, de las opciones del submenú, seleccione Encapsulate Fields y le da check sobre Create getter y Create setter, pero solo de las tres variables inicialmente mencionadas.

D. Cree un método llamado ListaSimple, declare la variable lista de tipo Nodo del punto C, y le crea sus métodos getter y setter. Se van a crear además de esos dos métodos, el de agregar tamaño al array, para que la serpiente aumente su tamaño y el de obtener el código para aumentar el array en una posición, siempre y cuando no este nulo:void agregarFinal(Nodo n) { //agrega al final Nodo aux = lista; if (lista != null) { while (aux.sig != null) { aux = aux.sig; }

Página 7 de 15

Page 8: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

aux.sig = n; } else { n.sig = lista; lista = n; } }

int obtenerCodigo() { int c = 0; Nodo aux = lista; if (lista == null) { } else { while (aux != null) { c++; aux = aux.sig; } } return c + 1; }

E. Cree el método que permite hacer referencia a la distribución del panel, no lo cierre hasta que se le indique:Panel() { label.setBounds(100, 250, 200, 50); //es el que dice puntos this.add(label); mov.start(); this.setLayout(null); t.requestFocus(); t.addKeyListener(this); this.add(t);

F. Recorre la matriz btn que creo en el punto B. Y le realiza las siguientes asignaciones: btn[x][y] = new JButton(""); btn[x][y].setBounds(x * 10, y * 10, 10, 10); this.add(btn[x][y]); btn[x][y].setBackground(Color.BLACK); btn[x][y].setBorder(null);

G. Termina el recorrido de la matriz, y asigna valores a la posición de la serpiente en el eje x y y, que será la mitad del valor de fila y columna de la matriz btn, y es asi como se indica que la posición inicial de la serpiente cuando se despliega el applet, será en todo el centro del applet. CabezaX = n / 2; CabezaY = m / 2; Nodo cabeza; for (int i = 0; i < 3; i++) { //le damos tamaño a la serpiente indiciándole que será de 3 cuadritos cabeza = new Nodo(); cabeza.setX(CabezaX - i); cabeza.setY(CabezaY); lista.agregarFinal(cabeza);

Página 8 de 15

Page 9: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

btn[cabeza.getX()][cabeza.getY()].setBackground(Color.BLUE); // le damos color a la serpiente }

H. Antes de cerrar el método declarado en el punto E, llame el método generarManzana(). I. Cierre el método PanelJ. El método generar manzana, crea la manzana de forma aleatoria en la pantalla una vez inicie el juego

void generarManzana() { manzanaX = aleatorioX(); //crea una posición aleatoria en x manzanaY = aleatorioY(); //crea una función aleatoria en y dibujarManzana(); //dibujar manzana }

K. El método dibujarManzana, le asigna a la matriz btn en su fila y columna la posición de la manzana en el eje x y y respectivamente, preguntándole que si es de color azul, no la puede generar, ya que es el cuerpo de la serpiente y tiene que estar en una posicion diferente para que la serpiente se la pueda comer.

if (btn[manzanaX][manzanaY].getBackground() == Color.BLUE) {

Llame al método generarManzana, si no, créela de color rojo btn[manzanaX][manzanaY].getBackground() == Color.RED.

L. En el método abstracto implementado llamado keyPressed(KeyEvent e), donde se indica que serán cuatro posibles movimientos, hacia arriba, abajo, izquierda y derecha. La numeración es solo nombre que le doy al caso, lo puede modificar si lo desea.

public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case 37: if (!marcha.equals("derecha")) mov.Opcion(37); break;Se crean 3 case más para izquierda, arriba y abajo. } }

M. Métodos de desplazamiento en los movimientos, ejemplo base para que defina los tres restantes:void derecha() { CabezaX++; validar(); }Hacia la izquierda la CabezaX debe disminuir una posición. Hacia abajo la CabezaY aumenta una posición y hacia arriba disminuye una posición. Es así como se puede percibir que la serpiente se está moviendo en el panel, dependiendo de la dirección que el usuario aplique.

N. Cree el método crecerSerpiente, dentro del cual aumenta en 1 la variable puntos, que se declaró en el punto B, y a continuación crea un label que le permita mostrar la puntuación actual, asi: label.setText("Puntaje = " + puntos);

O. Pregunte si el contador puntos es igual a determinado valor, el cual definirá el tamaño MAXIMO que podrá alcanzar la serpiente. En caso de que si, el usuario ha terminado el juego y se detiene el movimiento de la

Página 9 de 15

Page 10: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

serpiente. if (puntos == 60) { JOptionPane.showMessageDialog(null, "Juego Termino con Exito"); mov.detenElHilo(); // asi se detiene el hilo } Nodo n = new Nodo(); //para irle agregando longitud a mi codigo n.setCodigo(lista.obtenerCodigo()); lista.agregarFinal(n); //crece la serpiente y pide que aparezca nueva manzana generarManzana(); }Cierre el método que creo en el punto M.

P. Ahora, debe crear un método que valide que la serpiente no se mordio el cuerpo o que la serpiente comio la manzana, en caso de que se muerda, muestre con un JOptionPane.showMessageDialog(null, "Game Over") if (btn[CabezaX][CabezaY].getBackground() == Color.BLACK) { } else if (btn[CabezaX][CabezaY].getBackground() == Color.BLUE) { // Muestra el mensaje de Game Over, y detiene el hilo como se muestra en el punto N. } else if (btn[CabezaX][CabezaY].getBackground() == Color.RED) { //llama al método crecer. } limpiar(); }

Q. El punto O hace referencia al final del método limpiar. Eso indica que debe crear un método con ese nombre:void limpiar() { recorre filas de matriz recorre columnas de matriz btn[x][y].setBackground(Color.BLACK); } } Llama al método dibujarManzana(); if (lista.getLista() != null) { // pregunta si está vacío el pixel donde queremos dibujar la manzana Nodo aux = lista.getLista(); //aux toma un valor de tipo nodo de la función getlista while (aux.sig != null) { //aux en su punto siguiente valida que no esté vacío para agregar tamaño a serpiente aux.setX(aux.sig.getX()); aux.setY(aux.sig.getY()); btn[aux.getX()][aux.getY()].setBackground(Color.BLUE); aux = aux.sig; } aux.setX(CabezaX); aux.setY(CabezaY); btn[CabezaX][CabezaY].setBackground(Color.BLUE); } }

R. Creamos métodos aleatorios para posición X y Y, ejemplo con X, hace lo mismo con Y, pero teniendo en

Página 10 de 15

Page 11: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

cuenta que Y recorre es columnas. int aleatorioX() { return (int) (Math.random() * n); //recorre filas. }

S. Creamos el último método de mover, el cual extiende de un hilo. Class Mover extends Thread. Allí declaramos dos variables, la primera tipo boolean llamada continuar y con valor inicial en true, la segunda tipo entero llamada tecla con valor inicial cero (0). No cierre método hasta que se le indique.

T. Se crea un método llamado detenElHilo, dentro del cual la variable continuar, acaba de declarar toma el valor FALSE. Cierra método detenElHilo

U. Se crea el método Opcion al cual le entra una variable entero X public void Opcion(int x), y dentro del cual a tecla le asignamos el valor x. tecla = x; cierra método Opcion.

V. Creamos el método run, que dispara el hilo que permite que el programa funcione en los tiempos indicados:

public void run() { while (continuar) { try { Thread.currentThread().sleep(100); switch (tecla) { case 37: if (CabezaX >= 1) { izquierda(); marcha = "izquierda"; } else { JOptionPane.showMessageDialog(null, "Game Over"); this.stop(); } break; case 38: if (CabezaY >= 1) { arriba(); marcha = "arriba"; } else { JOptionPane.showMessageDialog(null, "Game Over"); this.stop(); } break; case 39: if (CabezaX <= 78) { derecha(); marcha = "derecha"; } else { JOptionPane.showMessageDialog(null, "Game Over"); this.stop(); } break; case 40: if (CabezaY <= 22) { abajo(); marcha = "abajo"; } else { JOptionPane.showMessageDialog(null, "Game Over");

Página 11 de 15

Page 12: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

this.stop(); } break; } } catch (InterruptedException ex) {Logger.getLogger(Panel.class.getName()).log(Level.SEVERE, null, ex); } } } }

W. Creamos el método main que permite la ejecución de la clase. Recuerde el comando rápido estudiado en la anterior clase: psvm + TAB.Instancia la clase Frame que se creó en el punto A y a la cual le llega como parámetro la variable panel de la clase Panel que también debe de instanciar. Así: Panel panel = new Panel(); //instaciamos la clase Panel Frame frame = new Frame(panel); //instanciamos la clase Frame

Evidencias de Aprendizaje Criterios de Evaluación Técnicas e Instrumentos de Evaluación

Evidencias de Conocimiento :

Evidencias de Desempeño:

Evidencias de Producto:

Sabe cuándo y para implementar métodos de JAVA. Diferencia entre arrays unidimensionales, bidimensionales (cuadráticos y no cuadráticos) y multidimensionales.

Utiliza adecuadamente estructuras de operación y decisión de la programación orientada a objetos.

Ejercicio resuelto exitosamente de acuerdos a los requerimientos solicitados y que incluya prueba de escritorio.

Resultados del código implementado y entregado, el cual deberá cumplir con los requisitos planteados por el (la) instructor(a).

Observación de como el aprendiz realiza su guía de aprendizaje, plantea y procede a la implementación de sus programas.

Después de terminada la guía, el aprendiz deberá hacer entrega del código resultante a su instructor(a), por medio del correo electrónico para su revisión posterior revisión.

Página 12 de 15

Page 13: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE

SISTEMA INTEGRADO DE GESTIÓNProceso Gestión de la Formación Profesional Integral

Procedimiento Ejecución de la Formación Profesional Integral

Versión: 02

Código: GFPI-F-019

Página 13 de 15

Page 14: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN

Procedimiento Ejecución de la Formación Profesional IntegralGUÍA DE APRENDIZAJE

Versión: 02

Código: GFPI-F-019

ACTIVIDADES DEL PROYECTO

DURACIÓN

(Horas)

Materiales de formación devolutivos: (Equipos/Herramientas)

Materiales de formación (consumibles) Talento Humano (Instructores) AMBIENTES DE

APRENDIZAJE TIPIFICADOS

Descripción Cantidad Descripción Cantidad Especialidad Cantidad

ESCENARIO (Aula, Laboratorio, taller, unidad productiva) y elementos y condiciones de seguridad industrial, salud

ocupacional y medio ambiente

Guía de aprendizaje UNIDAD 1.

4 Computador. 1

Computador, con

compiladores de código JAVA

instalado, en este caso:

Netbeans, o Eclipse.

1

Ingeniero de sistemas y de computación.

1 Aula de teleinformática, centro

de Automatización Industrial REGIONAL CALDAS.

Página 14 de 15

4. RECURSOS PARA EL APRENDIZAJE

Page 15: GFPI-F-019 Guia de Aprendizaje ADSI Java VectorMatriz

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN

Procedimiento Ejecución de la Formación Profesional IntegralGUÍA DE APRENDIZAJE

Versión: 02

Código: GFPI-F-019

Nombre Cargo Dependencia FechaAutor(a) Yaneth Mejía Rendón Instructor Automatización Industrial 07/09/2014

Página 15 de 15

5. REFERENTES BIBLIOGRÁFICOS

6. CONTROL DEL DOCUMENTO (ELABORADA POR)