Este documento describe el desarrollo de una aplicación móvil del juego Buscaminas para Android. Explica la investigación de mercado realizada, el diseño e implementación del juego en forma de aplicación para teléfonos Android, incluyendo las clases y métodos creados para simular el tablero de juego y su lógica. El objetivo final era crear una versión del clásico juego que pudiera ser instalada y jugada en dispositivos móviles.
Assicurare uno scooter 50 di cilindrata può essere davvero
costoso, di seguito alcuni consigli per risparmiare
sull’assicurazione per lo scooter 50, pur avendo una polizza
costruita sulle proprie esigenze e sul proprio stile di
guida. Come tutte le assicurazioni per la responsabilità
civile derivante dalla circolazione dei veicoli a motore,
anche la polizza di assicurazione per uno scooter 50 ha delle
variazioni di prezzo dovute all’età del conducente, alla
classe di rischio di appartenenza, al sesso dell’intestatario
e in relazione alla provincia di residenza.
Oltre questi fattori, variazioni di prezzo dell’assicurazione
dipendono sia dalla compagnia sia dalle garanzie che si
“acquistano”, però chi intende acquistare un ciclomotore deve
preventivare un costo medio di assicurazione annua di 200
euro.
CONCEPT
HISTORY OF XENOTRANSPLANTATION
IMPORTANCE OF XENOTRANSPLANTATION
CHOOSING OF DONOR SPECIES
XENOTRANSPLANTATION REJECTION
GUIDELINES ON XENO-TRANSPLANTATION BY ICMR
RECENT RESEARCH ON XENOTRANSPLANTATION
Assicurare uno scooter 50 di cilindrata può essere davvero
costoso, di seguito alcuni consigli per risparmiare
sull’assicurazione per lo scooter 50, pur avendo una polizza
costruita sulle proprie esigenze e sul proprio stile di
guida. Come tutte le assicurazioni per la responsabilità
civile derivante dalla circolazione dei veicoli a motore,
anche la polizza di assicurazione per uno scooter 50 ha delle
variazioni di prezzo dovute all’età del conducente, alla
classe di rischio di appartenenza, al sesso dell’intestatario
e in relazione alla provincia di residenza.
Oltre questi fattori, variazioni di prezzo dell’assicurazione
dipendono sia dalla compagnia sia dalle garanzie che si
“acquistano”, però chi intende acquistare un ciclomotore deve
preventivare un costo medio di assicurazione annua di 200
euro.
CONCEPT
HISTORY OF XENOTRANSPLANTATION
IMPORTANCE OF XENOTRANSPLANTATION
CHOOSING OF DONOR SPECIES
XENOTRANSPLANTATION REJECTION
GUIDELINES ON XENO-TRANSPLANTATION BY ICMR
RECENT RESEARCH ON XENOTRANSPLANTATION
How can companies - small and large - develop better products for their customers? Ones that their customers want and ones that will delight them? In a growlingly digital world that is changing every industry and company, and swallowing some whole, agility is a business value driver and not just good to do, but required.
Lean and agile methods and practices are the most common approach used by leading digital companies such as Expedia, Google, and Netflix and also large global enterprises who are transforming how they deliver business value faster - with higher quality - to the customer.
Agility is not just an "IT thing". It is a business imperative.
HTML Tour - Programación de Videojuegos HTML5Plain Concepts
En la charla veremos características comunes de los juegos y su aplicación práctica en canvas HTML5. Analizaremos varios tipos de juegos, tanto 2D como 3D y estudiaremos las diferentes maneras implementarlos mientras comentamos las partes clave de su estructura. Para finalizar echaremos un vistazo al framework desarrollado por PlainConcepts para la creación de diferentes tipos de juegos 2D y 3D en HTML5.
Creación de juegos mediante la plataforma XNA de Microsoft Visual Studio
Links para descargar material:
Parte 01: https://www.dropbox.com/s/2b3f27izg3wfqws/01.XNA.zip
Parte 02: https://www.dropbox.com/s/ep3634jsjullkbs/02.XNA.zip
Parte 03: https://www.dropbox.com/s/9e3q068t6mlkted/03.XNA.zip
Parte 04: https://www.dropbox.com/s/u4navlzlhtecjm0/04.XNA.zip
Parte 05: https://www.dropbox.com/s/oqjll5c73kbvu1j/05.XNA.zip
How can companies - small and large - develop better products for their customers? Ones that their customers want and ones that will delight them? In a growlingly digital world that is changing every industry and company, and swallowing some whole, agility is a business value driver and not just good to do, but required.
Lean and agile methods and practices are the most common approach used by leading digital companies such as Expedia, Google, and Netflix and also large global enterprises who are transforming how they deliver business value faster - with higher quality - to the customer.
Agility is not just an "IT thing". It is a business imperative.
HTML Tour - Programación de Videojuegos HTML5Plain Concepts
En la charla veremos características comunes de los juegos y su aplicación práctica en canvas HTML5. Analizaremos varios tipos de juegos, tanto 2D como 3D y estudiaremos las diferentes maneras implementarlos mientras comentamos las partes clave de su estructura. Para finalizar echaremos un vistazo al framework desarrollado por PlainConcepts para la creación de diferentes tipos de juegos 2D y 3D en HTML5.
Creación de juegos mediante la plataforma XNA de Microsoft Visual Studio
Links para descargar material:
Parte 01: https://www.dropbox.com/s/2b3f27izg3wfqws/01.XNA.zip
Parte 02: https://www.dropbox.com/s/ep3634jsjullkbs/02.XNA.zip
Parte 03: https://www.dropbox.com/s/9e3q068t6mlkted/03.XNA.zip
Parte 04: https://www.dropbox.com/s/u4navlzlhtecjm0/04.XNA.zip
Parte 05: https://www.dropbox.com/s/oqjll5c73kbvu1j/05.XNA.zip
Creación de juegos mediante la plataforma XNA de Microsoft Visual Studio
Links para descargar material:
Parte 01: https://www.dropbox.com/s/2b3f27izg3wfqws/01.XNA.zip
Parte 02: https://www.dropbox.com/s/ep3634jsjullkbs/02.XNA.zip
Parte 03: https://www.dropbox.com/s/9e3q068t6mlkted/03.XNA.zip
Parte 04: https://www.dropbox.com/s/u4navlzlhtecjm0/04.XNA.zip
Parte 05: https://www.dropbox.com/s/oqjll5c73kbvu1j/05.XNA.zip
Presentación de la charla de Toni Recio en la #DotNetSpain2016 y la re-DotNet #4Sessions del 16 de abril de 2016, en el Mobile World Centre de Barcelona
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
3. 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.
4. IDEA
• CREACION DE UNA APLICACIÓN PARA ANDROID, LA
CUAL LLEVA EL NOMBRE DE MINESWEEPER
(BUSCA MINAS).
5. 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
•
6. USOS DE LA APLICACION
• PRACTICA
• ENTRETENIMIENTO
• CONOCIMIENTO
8. • ¿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.
9. ASPECTO HISTORICO
Buscaminas (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.
10. 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
11. CUESTIONARIO DE ESTUDIO DE MERCADO
A 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?
12. 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)
13. 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.
14. Esta grafica de pastel marca el número de personas que consideran aburrido
o entretenido
16. ¿COMO LO CREAMOS?
Creamos un proyecto llamado: BuscaMinas
Borramos el TextView que agrega
automáticamente el plug-in de Eclipse y
disponemos un Button y un LinearLayout:
19. 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();
}
@Override
public 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();
}
20. @Override
public 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();
else
ancho = 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);
else
paint.setARGB(255, 153, 153, 153);
canvas.drawRect(c * anchocua, filaact, c * anchocua
+ anchocua - 2, filaact + anchocua - 2, paint);
// linea blanca
canvas.drawLine(c * anchocua, filaact, c * anchocua
+ anchocua, filaact, paintlinea1);
canvas.drawLine(c * anchocua + anchocua - 1, filaact, c
* anchocua + anchocua - 1, filaact + anchocua,
paintlinea1);
21. 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;
else
return false;
}
22. 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;
}
}
}