Professional Documents
Culture Documents
Submarino
16 Abril de 2010
Introducción
Este proyecto llamado “Submarino”, consiste en la realización de un juego de
estrategia muy conocido por muchos y que su funcionamiento se describe a
continuación.
Este juego consiste en que al mover una bomba por una cuadricula, y este
mismo quede situado en una posición, y al momento de tirarla se adivine si se
encuentra o no el submarino, pretendiendo que si el tiro es cercano, el
submarino cambie su posición inicial para tratar de eludir el siguiente tiro, el
juego termina si el jugador acierta su tiro y hunde el submarino. En el
transcurso de este documento conoceremos y entenderemos de una mejor
manera su funcionamiento y la manera en como fue creado, también
conoceremos el objetivo de la realización de este juego, una aplicación para
dispositivos móviles (celulares).
Objetivo
El objetivo de crear este juego es conocer mas a fondo lo que es la
programación de dispositivos móviles, así como usar todas las herramientas
que se han visto hasta este momento.
Al conocer mas acerca de la programación de dispositivos móviles, nos damos
cuenta que los códigos son muy parecidos a las aplicaciones que veníamos
creando anteriormente, así con la ayuda de estas podemos complementar y
desarrollar de una mejor manera este proyecto. También se tiene el
conocimiento de la manera en la que se administras los dispositivos móviles,
ya que son equipos demasiado limitados, como puede ser su memoria de
almacenamiento o su memoria RAM, su sistema operativo y los gráficos que
estos dispositivos pueden soportar. Tomando en cuenta todas estas
características se procede a la implementación para desarrollar el siguiente
juego.
Diagrama de Flujo
El siguiente diagrama muestra la manera en como se fue creando cada parte de este juego,
se realizo en Visio 2007.
Inicio
Dibujar cuadricula
No
2 ¿ se presiono tecla?
No
Si
2
¿flecha hacia arriba? Si J----j-1 J <0 Si J----0
No No
No
¿flecha hacia la
derecha?
¿flecha hacia la
izquierda?
Parte 2.
¿ se presionó tecla de
2 No disparo?
M i,j=1 Si «impacto»
Fin
No
3
X----- |barco x-i|
Y------|barcoy-j|
¿i<=1 and
Si Mover barco 2
j<=1?
No
X----|barco x+1i|
¿i<=1 and
si 3
j<=1?
No
«Falla»
2
Código de la aplicación “Submarino” realizado en (NetBeans
6.7).
Midlet
package Marino;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
display = Display.getDisplay(this);
SubmarinoGameCanvas gameCanvas = new
SubmarinoGameCanvas();
gameCanvas.start();
display.setCurrent(gameCanvas);
}
public Display getdisplay()
{
return display;
}
public void pauseApp() {
}
}
Canvas
package Marino;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.io.*;
import java.util.*;
public SubmarinoGameCanvas() {
super(true);
width = getWidth();
height = getHeight();
posx=0;
posy=0;
int vary=getHeight()/20;
int varx=getWidth()/20;
Random randomx = new Random ();
Random randomy = new Random ();
Random randomz = new Random ();
posicion=randomz.nextInt(2);
uno= randomx.nextInt(varx);
dos= randomx.nextInt(vary);
currentX = 0 ; // Centro horizontal
currentY = 0 ; // Centro vertial
posx = 0;
posy= 0;
delay = 30; // 30 ms
}
// movimiento a la Izquierda
if ((keyStates & LEFT_PRESSED) != 0)
{
posx = Math.max(0, posx - 20);
xuno=xuno-1;
if (xuno<0){
xuno=0;
}
System.out.print("X");
System.out.println(xuno);
if ( posx <0){
posx=0;
}
}
// Movimiento a la Derecha
if ((keyStates & RIGHT_PRESSED) !=0 )
if ( posx < width-25){
posx = Math.min(width,posx + 20);
xuno=xuno+1;
if(xuno>paramx){
xuno=paramx;
}
System.out.print("X");
System.out.println(xuno);
}
// Movimiento hacia Arriba
if ((keyStates & UP_PRESSED) != 0){
posy = Math.max(0, posy - 20);
yuno=yuno-1;
if (yuno<0){
yuno=0;
}
System.out.print("Y");
System.out.println(yuno);
if ( posy < 0){
posy=0;
}
}
// Movimiento hacia Abajo
if ((keyStates & DOWN_PRESSED) !=0)
if ( posy < height-50)
{
posy = Math.min(height,posy + 20);
yuno=yuno+1;
if (yuno>paramy){
yuno=paramy;
}
System.out.print("Y");
System.out.println(yuno);
}
// Para Disparar
if ((keyStates & FIRE_PRESSED) !=0){
System.out.println("Detectado el Fire");
if (matriz[xuno][yuno]==1){
System.out.println("Felicidades ¡¡GANASTE!!");
auno=1;
}
else {
sublejos=1;
}
}
}
Fotos de la aplicación
Inicia la
Aplicación, la
bomba parte
superior y el
submarino
parte inferior,
en este caso
aparece el
submarino
para simular el
ejemplo.
En esta parte
se esta
simulando un
tiro lejano.
En esta
última parte
se muestra el
mensaje de
ganador y el
submarino
hundido, el
juego a
terminado.