Sunteți pe pagina 1din 6

PROGRAMACIÓN INTERATIVA

PROYECTO: JUEGO APPLET BLAST

ELABORADO POR:
RUBEN DARIO SAA MONTAÑO

PRESENTADO A:
SUSANA MEDINA GORDILLO

UNIVALLE SEDE NORTE DEL CAUCA


TECNOLOGIA EN SISTEMA

PUERTO TEJADA “CAUCA”


2019
I. Introducción
II. Organización del equipo
Mediante el presente trabajo estamos dando (descripción de la forma de
a conocer como realizar el juego APPLET trabajo y distribución del trabajo)
blast, el cual consiste en eliminar un tipo de
frutas de colores, mostrando como la Lo primero fue crear la portada del juego, y
programación permite desarrollar cualquier desde allí inicializamos nuestro juego, después
tipo de programa deseado. creamos una clase donde incluiremos todo el
proceso del juego.

III. Justificación del Proyecto (¿Por


qué se hace una aplicación con un
juego?)
Las aplicaciones permiten al usuario efectuar
un conjunto de tareas de cualquier tipo —
profesional, de ocio, educativas, de acceso a
servicios, etc.—, facilitando las gestiones o
actividades a desarrollar, también podemos
decir que Las aplicaciones móviles ganan cada
vez más terreno, permitiendo a cualquier
compañía o profesional independiente llegar a
clientes potenciales y fortalecer el contacto y
nivel de servicio con clientes actuales.

IV. Descripción General

A. Funciones del producto (¿Qué se


puede hacer con el proyecto?)
Este juego nos permite seleccionar y
eliminar frutas del mismo color, pero las
frutas no comienzan aparecer desde la
parte inferior hacia la superior sino que el a
contrario y se van rellenando mientras se
están eliminando.

B. Diagrama de clases (con atributos y


métodos)
package juego;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; }
import java.util.Random; ActionListener taskPerformer = new
import javax.swing.ImageIcon; ActionListener() {
import javax.swing.JFrame;
import javax.swing.JLabel; @Override
import javax.swing.JOptionPane; public void
import javax.swing.Timer; actionPerformed(ActionEvent evt) {
for (int i = 0; i < mat.length; i++) {
ventana.add(mat[i][mas]);
public class Juego { mat[i][mas].setVisible(true);
int con=0, mas=9; System.out.println("Quedan
JFrame ventana; "+segundos+i+" segundos...");
JLabel mat[][]; }
int matriz[][];
Random aleatorio;
int puntaje, valor; if (mas == 0){
Timer Reloj; // Declaramos un objeto Timer Reloj.stop();
con el nombre de Reloj.
int segundos=0; // Una variable para manejar JOptionPane.showMessageDialog(null, "Se
la cuenta regresiva. acabo el Juego");
int copiasegundos=3; // Para recordar los ventana.setVisible(false);
segundos en caso de reiniciar la cuenta }
regresiva.
int delay = 3000;
for (int i = 0; i < mat.length; i++) {
for (int j = 0; j < mat.length; j++) {
public Juego(){ mat[i][j].addMouseListener(new
//Timer timer new = Timer(); MouseAdapter() {
ventana = new JFrame("APPLE blast"); @Override
ventana.setBounds(0, 0, 518, 538); public void mouseClicked(
ventana.setLayout(null); MouseEvent ev ){
for (int k = 0; k < mat.length;
ventana.setDefaultCloseOperation(JFrame.HID k++) {
E_ON_CLOSE); for (int l = 0; l < mat.length;
mat = new JLabel[10][10]; l++) {
matriz = new int[10][10]; if( mat[k][l] ==
aleatorio = new Random(); ev.getSource() ){

System.out.println("posicion: "+k+" "+l);


for (int i = 0; i < mat.length; i++) { recursiva( k, l, matriz[k][l]
for (int j = 0; j < mat.length; j++) { );
mat[i][j] = new JLabel(); con=1;
mat[i][j].setBounds(0+i*50, 0+j*50, }
50, 50);
matriz[i][j] = aleatorio.nextInt(7)+1; }
mat[i][j].setIcon(new }
ImageIcon("imagenes/"+matriz[i][j]+".jpg")); //for (JLabel[] mat1 : mat) {
mat[i][j].setVisible(false); for (int k = 0; k < mat.length;
k++) {
}
for (int l = 0; l < mat.length; if((px<9 && py<9
l++) { )&&(matriz[px+1][py+1] == color )){
if(l < 9 && matriz[k][l+1] == con=con+1;
-2){ }
matriz[k][l+1] = if((px<9 && py>0 )&&(matriz[px+1][py-1]
matriz[k][l]; == color )){
matriz[k][l] = - con=con+1;
2;//aleatorio.nextInt(9)+1;; }
} }
mat[k][l].setIcon(new if( px > 0 && matriz[px-1][py] == color ){
ImageIcon("imagenes/"+matriz[k][l]+".jpg")); con=con+1;
} if( px > 1 && matriz[px-2][py] == color ){
} con=con+1;
}
if((px > 0 && py > 0 )&&(matriz[px-1][py-
}}); 1] == color) ){
con=con+1;
} }
} if((px > 0 && py<9 )&&(matriz[px-
mas--; 1][py+1] == color)){
segundos++; // Reduce la cantidad con=con+1;
de segundos. }
} }
}; // Fin de la declaración del if( py < 9 && matriz[px][py+1] == color ){
ActionListener. con=con+1;
if( py < 8 && matriz[px][py+2] == color ){
// Creamos un nuevo Timer, indicando el con=con+1;
retraso (delay), }
// y la acción a ejecutar, osea, if((py<9 && px>0 )&&(matriz[px-1][py+1]
taskPerformer(Arriba): == color)){
Reloj = new Timer(delay, taskPerformer); con=con+1;
Reloj.start(); }
if((px<9 && py<9
)&&(matriz[px+1][py+1] == color )){
con=con+1;
}
}
ventana.setVisible(true); if( py > 0 && matriz[px][py-1] == color ){
con=con+1;
} if( py > 1 && matriz[px][py-2] == color ){
con=con+1;
public void recursiva( int px, int py, int color }
){ if((px>0 && py>0 )&&(matriz[px-1][py-1]
if == color )){
((matriz[px][py]==1)||(matriz[px][py]==2)){ con=con+1;
if( px < 9 && matriz[px+1][py] == color ){ }
con=con+1; if((px<9 && py>0 )&&(matriz[px+1][py-1]
if( px < 8 && matriz[px+2][py] == color ){ == color )){
con=con+1; con=con+1;
} }
} if( px < 9 && matriz[px+1][py] ==
2||(matriz[px+1][py] == 5))
if((color!=-2)&&(con>=3)) { matriz[px+1][py] = -2;
valor = 5*con; if( px > 0 && matriz[px-1][py] ==
puntaje = valor+valor; 2||(matriz[px+1][py] == 5))
matriz[px][py] = -2; matriz[px-1][py] = -2;
} if( py < 9 && matriz[px][py+1] ==
2||(matriz[px+1][py] == 5))
mat[px][py].setIcon(new matriz[px][py+1] = -2;
ImageIcon("imagenes/"+matriz[px][py]+".jpg")); if( py > 0 && matriz[px][py-1]
==2||(matriz[px+1][py] == 5))
if( px < 9 && matriz[px+1][py] == color ) matriz[px][py-1] = -2;
recursiva( px+1, py, color ); }else{
if( px > 0 && matriz[px-1][py] == color ) if(matriz[px][py]==6){
recursiva( px-1, py, color ); matriz[px][py] = -2;
if( py < 9 && matriz[px][py+1] == color ) if( px < 9 && matriz[px+1][py] ==
recursiva( px, py+1, color ); 3||(matriz[px+1][py] == 6))
if( py > 0 && matriz[px][py-1] == color ) matriz[px+1][py] = -2;
recursiva( px, py-1, color ); if( px > 0 && matriz[px-1][py] ==
}else{ 3||(matriz[px+1][py] == 6))
puntaje=+-50; matriz[px-1][py] = -2;
if(matriz[px][py]==7){ if( py < 9 && matriz[px][py+1] ==
matriz[px][py] = -2; 3||(matriz[px+1][py] == 6))
matriz[px][py-1] = -2; matriz[px][py+1] = -2;
matriz[px-1][py-1] = -2; if( py > 0 && matriz[px][py-1]
matriz[px-1][py] = -2; ==3||(matriz[px+1][py] == 6))
matriz[px-1][py+1] = -2; matriz[px][py-1] = -2;
matriz[px][py+1] = -2; }
matriz[px+1][py+1] = -2; }
matriz[px+1][py] = -2; }
matriz[px-1][py+1] = -2; }
}else{ }
if(matriz[px][py]==4){ System.out.println("Puntuación:"+puntaje);
matriz[px][py] = -2; }
if((px < 9 && matriz[px+1][py] ==
1)||(matriz[px+1][py] == 4))
matriz[px+1][py] = -2; }
if( px > 0 && matriz[px-1][py] == 1
||(matriz[px-1][py] == 4))
matriz[px-1][py] = -2; C. Detalles Implementación (¿Qué fue lo
if( py < 9 && matriz[px][py+1] == 1 más difícil de implementar? Y lo más
||(matriz[px][py+1] == 4)) fácil?)
matriz[px][py+1] = -2; Lo más fácil de hacer fue la portada donde,
if( py > 0 && matriz[px][py-1] == donde solo creamos un Jframe con un Panel y
1||(matriz[px][py-1] == 4)) le añadimos una imagen con un botón para
matriz[px][py-1] = -2; iniciar el juego.
}else{ Lo más difícil fue permitir al juego que vaya
if(matriz[px][py]==5){ eliminando las frutas cuando hay tres del
matriz[px][py] = -2; mismo color y permitir que se siga llenado la
ventana de frutas.
https://living-sun.com/es/java/462710-how-to-use-
timertask-in-an-auto-generated-jframe-java-swing-
timer-jframe-timertask.html
D. Restricciones generales (¿es un
programa multijugador? usa un https://coderanch.com/t/635978/java/add-timer-jframe
servidor?) http://www.java2s.com/Tutorials/Java/Swing_How_to/
Este juego solo nos permite tener un jugador a Timer/Create_Counter_on_JFrame_with_Timer.htm
la vez y no utiliza servidor.

V. Mejoras a futuro (¿Cuáles


funcionalidades podrían
mejorarse? Cuáles
funcionalidades
nuevas a futuro son interesantes para el
proyecto?)
Teniendo más tiempo permitiría que juego
pudiera tener un fin si el jugador después de
un determinado tiempo no logra eliminar
determinadas filas, también le permitiría a
juego que tuviera muchos niveles, donde
aparecieran mas frutas cada vez que pase un
nivel.

VI. Conclusión del proyecto (¿Qué


aprendieron realizando este
proyecto?)
Primeramente que debo ser más diciplinado
con mi tiempo para el juego quedara completo,
también pude adquirir mas conocimiento a la
hora de colocar un Time en NetBeans sin tanta
dificulta, pudimos aprender a generar también
matrices de JLabel.

VII. Referencias (páginas web, libros,


revistas científicas, etc. usadas de
apoyo en el informe o durante el
proceso de desarrollo del
proyecto)

https://www.youtube.com/watch?v=XEibCH5lb4U&t=1
64s

http://www.fredosaurus.com/notes-
java/examples/animation/40BouncingBall/bouncingball.
html

S-ar putea să vă placă și