Presentacion proyecto
-
Upload
roberto-perales -
Category
Software
-
view
36 -
download
1
Transcript of Presentacion proyecto
![Page 1: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/1.jpg)
C&S COMPANYPROYECTO BUSCAMINAS
![Page 2: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/2.jpg)
“CIENCIA A LA COMPUTACION Y ARTE AL PROGRAMA”
![Page 3: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/3.jpg)
INTRODUCCION• En este proyecto se hizo el estudio y
comprobación de la teoría aplicada acerca del juego Buscaminas (Minesweeper), el objetivo era investigar acerca de su impacto en el Mercado, además de la realización del juego en un formato APK para que sea instalado en cualquier Móvil Android.
![Page 4: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/4.jpg)
IDEA
• CREACION DE UNA APLICACIÓN PARA ANDROID, LA CUAL LLEVA EL NOMBRE DE MINESWEEPER (BUSCA MINAS).
![Page 5: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/5.jpg)
JUSTIFICACION • Lo creamos como un homenaje a los juegos
predeterminados en Microsoft que muchas veces se piensa ya no tienen lugar en la actualidad, lo adaptamos a un modo Móvil para todos aquellos que aun siguieran siendo jugadores potenciales ya que, no es solo útil para el entretenimiento, en ocasiones ha sido utilizada como practica en el entorno educativo, por su estrategia
•
![Page 6: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/6.jpg)
USOS DE LA APLICACION• PRACTICA• ENTRETENIMIENTO• CONOCIMIENTO
![Page 7: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/7.jpg)
¿PORQUE LA APLICACIÓN ES PARA ANDROID?
![Page 8: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/8.jpg)
• ¿Por qué nos interesa Android? • Por dos razones:• Primero, el hecho de que Google lo esté introduciendo y la
notoriedad que Android ha obtenido en un periodo de tiempo tan corto.
• La segunda razón por la que Android es importante es porque no es solo otra plataforma móvil con un menú telefónico y una pantalla táctil. La arquitectura de Android permite un entorno de software altamente personalizable gracias a su enlace de ejecución de las acciones solicitadas y el código para satisfacer estas solicitudes.
![Page 9: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/9.jpg)
ASPECTO HISTORICOBuscaminas (nombre original en inglés: Minesweeper) es un videojuego para un jugador inventado por Robert Donner en 1989. El objetivo del juego es despejar un campo de minas sin detonar ninguna.El Buscaminas es, probablemente, el juego más popular de todos los que Windows incluye y de paso, el más original en su concepto. ¿Quién podría pensar que liberar un campo minado pudiese ser tan divertido? pues Robert Donner y Curt Johnson, creadores de este clásico.
El Buscaminas vio la luz por primera vez dentro del Microsoft Entertaintment Pack para Windows. Dos años más tarde reaparecería ya dentro de la instalación estándar de Windows 3.1, y a partir de ahí en todas las sucesivas entregas del sistema operativo de Microsoft.
![Page 10: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/10.jpg)
SUS PRIMEROS CREADORES
Robert Donner y Curt Johnson se acreditan por Microsoft como los autores de Buscaminas de Windows.Buscaminas fue programado por Robert Donner, quien comenzó a trabajar en Microsoft en mayo de 1989. Originario de Winnipeg, Canadá, que ya tenía un grado de Maestría en Ciencias de la Computación y había escrito
![Page 11: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/11.jpg)
CUESTIONARIO DE ESTUDIO DE MERCADOA través de este proyecto creamos una encuesta compuesta por las preguntas que están a continuación que fue aplicada a distintas personas:¿Conoce el juego Minesweeper (Buscaminas)? ¿Cómo se enteró de su existencia? ¿Alguna vez lo uso? ¿Con que frecuencia? En una escala del 1 al 10 ¿Cómo lo valoraría?
![Page 12: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/12.jpg)
En comparación a otros juegos del mismo tipo ¿Cómo lo cataloga? ¿Alguna vez lo ha recomendado o mostrado a otras personas? ¿Qué es lo que le gusto y lo que no, de este juego? ¿Qué cambios haría para mejorarlo? ¿Qué incrementaría tu potencial interés en este juego? *LA ENCUESTA SE APLICO A 15 PERSONAS (LA ENCUESTA ESTUVO BASADA EN LA VERSION DE PC PARA FUTURAS MEJORES EN LA APP MOVIL)
![Page 13: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/13.jpg)
Esta grafica especifica la valoración del juego en pc según sus clientes, es un juego clásico, que se sigue considerando entre los ciudadanos como arduamente atrayente, además de un reto para la comunidad.
![Page 14: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/14.jpg)
Esta grafica de pastel marca el número de personas que consideran aburrido o entretenido
![Page 15: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/15.jpg)
BUSCAMINAS PARA MOVILESTA ES LA FORMA EN LA QUE SE VE NUESTRA ADAPTACION MOVIL DE EL BUSCAMINAS
![Page 16: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/16.jpg)
¿COMO LO CREAMOS?Creamos un proyecto llamado: BuscaMinasBorramos el TextView que agrega automáticamente el plug-in de Eclipse y disponemos un Button y un LinearLayout:
![Page 17: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/17.jpg)
Luego codificamos las clases BuscaMinasActivity y Casilla:
![Page 18: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/18.jpg)
ANEXOpackage com.androidya.buscaminas;
import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Typeface;import android.os.Bundle;import android.view.Menu;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.Window;import android.view.WindowManager;import android.widget.LinearLayout;import android.widget.Toast;
public class MainActivity extends Activity implements OnTouchListener {private Tablero fondo;int x, y;private Casilla[][] casillas;private boolean activo = true;
@Overrideprotected void onCreate(Bundle savedInstanceState) {requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
![Page 19: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/19.jpg)
LinearLayout layout = (LinearLayout) findViewById(R.id.layout2);fondo = new Tablero(this);fondo.setOnTouchListener(this); layout.addView(fondo);casillas = new Casilla[8][8];for (int f = 0; f < 8; f++) {for (int c = 0; c < 8; c++) {casillas[f][c] = new Casilla();}}this.disponerBombas();this.contarBombasPerimetro();}
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}
public void presionado(View v) {casillas = new Casilla[8][8];for (int f = 0; f < 8; f++) {for (int c = 0; c < 8; c++) {casillas[f][c] = new Casilla();}}this.disponerBombas();this.contarBombasPerimetro();activo = true;
fondo.invalidate();}
![Page 20: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/20.jpg)
@Overridepublic boolean onTouch(View v, MotionEvent event) {if (activo)for (int f = 0; f < 8; f++) {for (int c = 0; c < 8; c++) {if (casillas[f][c].dentro((int) event.getX(),(int) event.getY())) {casillas[f][c].destapado = true;if (casillas[f][c].contenido == 80) {Toast.makeText(this, "Booooooooommmmmmmmmmmm",Toast.LENGTH_LONG).show();activo = false;} else if (casillas[f][c].contenido == 0)recorrer(f, c);fondo.invalidate();}}}if (gano() && activo) {Toast.makeText(this, "Ganaste", Toast.LENGTH_LONG).show();activo = false;}
return true;}
class Tablero extends View {
public Tablero(Context context) {super(context);}protected void onDraw(Canvas canvas) {canvas.drawRGB(0, 0, 0);int ancho = 0;if (canvas.getWidth() < canvas.getHeight())ancho = fondo.getWidth();elseancho = fondo.getHeight();int anchocua = ancho / 8;Paint paint = new Paint();paint.setTextSize(20);Paint paint2 = new Paint();paint2.setTextSize(20);paint2.setTypeface(Typeface.DEFAULT_BOLD);paint2.setARGB(255, 0, 0, 255);Paint paintlinea1 = new Paint();paintlinea1.setARGB(255, 255, 255, 255);int filaact = 0;for (int f = 0; f < 8; f++) {for (int c = 0; c < 8; c++) {casillas[f][c].fijarxy(c * anchocua, filaact, anchocua);if (casillas[f][c].destapado == false)paint.setARGB(153, 204, 204, 204);elsepaint.setARGB(255, 153, 153, 153);canvas.drawRect(c * anchocua, filaact, c * anchocua+ anchocua - 2, filaact + anchocua - 2, paint);// linea blancacanvas.drawLine(c * anchocua, filaact, c * anchocua+ anchocua, filaact, paintlinea1);canvas.drawLine(c * anchocua + anchocua - 1, filaact, c* anchocua + anchocua - 1, filaact + anchocua,paintlinea1);
![Page 21: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/21.jpg)
if (casillas[f][c].contenido >= 1&& casillas[f][c].contenido <= 8&& casillas[f][c].destapado)canvas.drawText(String.valueOf(casillas[f][c].contenido), c* anchocua + (anchocua / 2) - 8,filaact + anchocua / 2, paint2);
if (casillas[f][c].contenido == 80&& casillas[f][c].destapado) {Paint bomba = new Paint();bomba.setARGB(255, 255, 0, 0);canvas.drawCircle(c * anchocua + (anchocua / 2),filaact + (anchocua / 2), 8, bomba);}
}filaact = filaact + anchocua;}}}
private void disponerBombas() {int cantidad = 8;do {int fila = (int) (Math.random() * 8);int columna = (int) (Math.random() * 8);if (casillas[fila][columna].contenido == 0) {casillas[fila][columna].contenido = 80;cantidad--;}} while (cantidad != 0);}
private boolean gano() {int cant = 0;for (int f = 0; f < 8; f++)for (int c = 0; c < 8; c++)if (casillas[f][c].destapado)cant++;if (cant == 56)return true;elsereturn false;}
![Page 22: Presentacion proyecto](https://reader031.fdocuments.mx/reader031/viewer/2022022201/588868d91a28abad0d8b62d9/html5/thumbnails/22.jpg)
private void contarBombasPerimetro() {for (int f = 0; f < 8; f++) {for (int c = 0; c < 8; c++) {if (casillas[f][c].contenido == 0) {int cant = contarCoordenada(f, c);casillas[f][c].contenido = cant;}}}}
int contarCoordenada(int fila, int columna) {int total = 0;if (fila - 1 >= 0 && columna - 1 >= 0) {if (casillas[fila - 1][columna - 1].contenido == 80)total++;}if (fila - 1 >= 0) {if (casillas[fila - 1][columna].contenido == 80)total++;}if (fila - 1 >= 0 && columna + 1 < 8) {if (casillas[fila - 1][columna + 1].contenido == 80)total++;}
if (columna + 1 < 8) {if (casillas[fila][columna + 1].contenido == 80)total++;}if (fila + 1 < 8 && columna + 1 < 8) {if (casillas[fila + 1][columna + 1].contenido == 80)total++;}
if (fila + 1 < 8) {if (casillas[fila + 1][columna].contenido == 80)total++;}if (fila + 1 < 8 && columna - 1 >= 0) {if (casillas[fila + 1][columna - 1].contenido == 80)total++;}if (columna - 1 >= 0) {if (casillas[fila][columna - 1].contenido == 80)total++;}return total;}
private void recorrer(int fil, int col) {if (fil >= 0 && fil < 8 && col >= 0 && col < 8) {if (casillas[fil][col].contenido == 0) {casillas[fil][col].destapado = true;casillas[fil][col].contenido = 50;recorrer(fil, col + 1);recorrer(fil, col - 1);recorrer(fil + 1, col);recorrer(fil - 1, col);recorrer(fil - 1, col - 1);recorrer(fil - 1, col + 1);recorrer(fil + 1, col + 1);recorrer(fil + 1, col - 1);} else if (casillas[fil][col].contenido >= 1&& casillas[fil][col].contenido <= 8) {casillas[fil][col].destapado = true;}}}