You are on page 1of 8

DAD

Prctica 6
Hundir la flota FASE 1: definiendo los mapas
Fco. Javier Vaquero y Rubn Snchez 22/11/2012

Comienzo del desarrollo del conocido juego hundir la flota, para practicar con este ejemplo en la programacin Java.

TAREA 2
HundirFlota.java:
package lab6; import java.util.*; public class HundirFlota{ public static void main(String[] args){ //Definimos un array que contenga la localizacin de los barcos. int[][] mapaBarcos = {{0,0,0,0,0,0,0,0,0,0}, {0,1,0,0,1,0,0,0,0,0}, {0,1,0,1,0,1,0,1,1,0}, {0,1,0,0,0,0,0,0,0,0}, {0,1,0,0,0,0,0,0,0,0}, {0,1,0,1,0,0,1,1,1,1}, {0,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,0}, {0,1,0,0,0,0,0,0,1,1}}; System.out.println("Las posiciones de los barcos son:"); mostrarArrayBidimensional(mapaBarcos); } Static void mostrarArrayBidimensional(int[][] mapa){ //Esta funcin se encarga de mostrarnos por pantalla el //mapa de la localizacin de los barcos. for(int i=0; i<mapa.length;i++){ System.out.print(" "); for(int j=0; j<mapa[i].length;j++) System.out.print(mapa[i][j] + " "); System.out.println(""); } } } El resultado de la ejecucin del programa HundirFlota desarrollado en este apartado es el siguiente: Las posiciones de 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 los 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 barcos son: 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1

TAREA 3
HundirFlota.java:
package lab6; import java.util.*; public class HundirFlota{ public static void main(String[] args){ //creamos la matriz de barcos: int[][] mapaBarcos = {{0,0,0,0,0,0,0,0,0,0}, {0,1,0,0,1,0,0,0,0,0}, {0,1,0,1,0,1,0,1,1,0}, {0,1,0,0,0,0,0,0,0,0}, {0,1,0,0,0,0,0,0,0,0}, {0,1,0,1,0,0,1,1,1,1}, {0,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,0}, {0,1,0,0,0,0,0,0,1,1}}; //Mostramos inicialmente las posiciones de los barcos: System.out.println("Las posiciones de los barcos son:"); mostrarArrayBidimensional(mapaBarcos); //Creamos un bucle infinito: while(1>0){ disparar(mapaBarcos); System.out.println(""); } } Static void mostrarArrayBidimensional(int[][] mapa){ //For que recorre el array mapa y muestra los barcos: for(int i=0; i<mapa.length;i++){ System.out.print(" "); for(int j=0; j<mapa[i].length;j++) System.out.print(mapa[i][j] + " "); System.out.println(""); //Este println cambia la lnea para que queden los //datos ordenados } } Static void disparar(int mapa[][]){ // Funcin se encarga de ejecutar los disparos y //comprobar si hemos acertado a un barco int fil, col; // Creamos un buffer de entrada para recibir por pantalla. Scanner entrada= new Scanner(System.in); System.out.print("Introduzca el nmero de fila (1-" + (mapa.length) + "): "); fil = entrada.nextInt(); System.out.print("Introduzca el nmero de columna (1-" + (mapa[0].length) + "): "); col=entrada.nextInt(); if(mapa[fil-1][col-1]==1){ System.out.println("El disparo (" + fil + "," +

col + ") cae en BARCO");} else{ System.out.println("El disparo (" + fil + "," + col + ") cae en AGUA"); } } } El resultado de la ejecucin del programa HundirFlota desarrollado en este apartado es el siguiente: Las posiciones de los barcos son: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 Introduzca el nmero de fila (1-9): 2 Introduzca el nmero de columna (1-10): 3 El disparo (2,3) cae en AGUA Introduzca el nmero de fila (1-9): 5 Introduzca el nmero de columna (1-10): 4 El disparo (5,4) cae en AGUA Introduzca el nmero de fila (1-9): 1 Introduzca el nmero de columna (1-10): 1 El disparo (1,1) cae en AGUA Introduzca el nmero de fila (1-9): 9 Introduzca el nmero de columna (1-10): 10 El disparo (9,10) cae en BARCO ...

TAREA 4
HundirFlota.java:
package lab6; import java.util.*; public class HundirFlota{ public static void main(String[] args){ int[][] mapaBarcos = {{0,0,0,0,0,0,0,0,0,0}, {0,1,0,0,1,0,0,0,0,0}, {0,1,0,1,0,1,0,1,1,0}, {0,1,0,0,0,0,0,0,0,0}, {0,1,0,0,0,0,0,0,0,0}, {0,1,0,1,0,0,1,1,1,1}, {0,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,0}, {0,1,0,0,0,0,0,0,1,1}}; //Definimos un nuevo array del mismo tamao que mapaBarcos, //que nos informa de donde hemos efectuado los disparos. int[][] mapaDisparos = newint[mapaBarcos.length][mapaBarcos[0].length]; for(int i= 0; i<mapaDisparos.length;i++){ for(int j=0; j<mapaDisparos[i].length;j++) mapaDisparos[i][j]=0; }//este bucle for lo inicializa a cero. System.out.println("Las posiciones de los barcos son:"); mostrarArrayBidimensional(mapaBarcos); while(1>0){// Bucle infinito disparar(mapaBarcos,mapaDisparos); System.out.println("Los disparos realizados son:"); mostrarArrayBidimensional(mapaDisparos); System.out.println();// Cambio de linea } } static void mostrarArrayBidimensional(int[][] mapa){ //Funcin que nos muestra el array que le introduzcamos //siempre y cuando la dimensin de la matriz no sea mayor //que dos. for(int i=0; i<mapa.length;i++){ System.out.print(" "); for(int j=0; j<mapa[i].length;j++) System.out.print(mapa[i][j] + " "); System.out.println(""); } } static void disparar(int mapa1[][], int mapa2[][]){ // Esta funcin realiza los disparos y nos indica si ha cado en agua o no, adems modifica mapaDisparos (mapa2), que nos muestra las casillas donde hemos disparado. int fil, col; Scanner entrada= newScanner(System.in);

System.out.print("Introduzca el nmero de fila (1-" + (mapa1.length) + "): "); fil=entrada.nextInt(); System.out.print("Introduzca el nmero de columna (1-" + (mapa1[0].length) + "): "); col=entrada.nextInt(); if(mapa1[fil-1][col-1]==1){ System.out.println("El disparo (" + fil + "," + col + ") cae en BARCO"); mapa2[fil-1][col-1]= 2; } else{ System.out.println("El disparo (" + fil + "," + col + ") cae en AGUA"); mapa2[fil-1][col-1]= 1; } } } El resultado de la ejecucin del programaHundirFlota desarrollado en este apartado es el siguiente: Las posiciones de los barcos son: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 Introduzca el nmero de fila (1-9): 1 Introduzca el nmero de columna (1-10): 1 El disparo (1,1) cae en AGUA Los disparos realizados son: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Introduzca el nmero de fila (1-9): 9 Introduzca el nmero de columna (1-10): 10 El disparo (9,10) cae en BARCO Los disparos realizados son: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2

Introduzca el nmero de fila (1-9): 5 Introduzca el nmero de columna (1-10): 5 El disparo (5,5) cae en AGUA Los disparos realizados son: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 Introduzca el nmero de fila (1-9): 3 Introduzca el nmero de columna (1-10): 3 El disparo (3,3) cae en AGUA Los disparos realizados son: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 ...

You might also like