Notas:
- Muestra en el mapa del J1 los 0 con agua, 1 con barcos y 2 con barcos hundidos
- 1 jugador contra la máquina
- Sólo permite colocar 6 barcos de una única casilla
Update v0.1 - 2/12/12
-------------------------------
- Añadidas estadísticas de juego
- Validación de la colocación y del ataque (mejorado)
- Cuando destruyes un barco, puedes volver a atacar (como en el parchís)
- Alternación de rondas entre J1 y J2 cada vez que das en agua...hasta destruir los 6 barcos
- Evitada la colocación de más de un barco en la misma casilla (se eliminaba el barco anterior)
- Ahora puedes elegir entre colocar los barcos automáticamente o manualmente.
Update v0.2 - 12/12/12
----------------------------------
- Mejorado el diseño de los mapas
- Asignación de identidades con carácteres. B = Barco. A = Agua. X = Hundido.- = Desconocido
- Marcado en el mapa donde se haya atacado en agua para no volver a dar en la misma posición
- Se ocultan los barcos del J2, sin embargo permanecen en la misma posición
- Optimizado el sistema de elección aleatoria
- Si atacas a una posición ya atacada anteriormente pierdes turno
- Creado un menú principal
- Se muestra el turno del usuario con su nombre introducido al iniciar
- Ahora puedes indicar en opciones con cuantos barcos quieres jugar en el mapa. Igual nº para J1 y J2.
Update v0.3 - 02/02/13
----------------------------------
- Ordenado todo el código por POO
- Arreglado problema al dar J1 a J2 en pos de barco hundido(X) deberia perder turno
- Solucionado problema al cargar los barcos de forma manual de J1
- Agregada notificacion de "cargando barcos..." para avisar del tiempo
- Pequeños cambios en el diseño
- Permite agregar nombre al jugador 2 (máquina)
- Al colocar los barcos manualmente, se muestran en el mapa los barcos que vayas introduciendo
- Solucionado lo de colocar barco en pos ya coloc antes (colocación manual)
- Agregada la opción de activar efectos de sonido
Descargar Proyecto Completo
https://mega.co.nz/#!Z09x2ITI!KxleE3AQDo9O-NgI1JyL33mOKBRRwu3qUHcpCPiDH14
http://www.mediafire.com/download.php?9onxw63bbklne5b
Descargar sólo Ejecutable
https://mega.co.nz/#!okNwnB5Z!PhOglj7hC3Oz-5R9_1S0p22JGfcMCd3k1JX__vrfR4A
http://www.mediafire.com/?cpocl71xwyb22yb
Principal.cs
Código
using System; using System.IO; using System.Threading; namespace Hundir_la_Flota{ public class Program{ public static void Main(string[] args){ Console.Title = "Hundir la flota 0.3"; bool validar = false, volverAtras = true, sonido = false; int opcion1 = 0, opcion2 = 0, opcion3 = 0, barcosIniciales = 6; string nombreJ1 = null, nombreJ2 = null; do{ // Validación del menu principal if(sonido == true){ player.SoundLocation = ".\\sonido\\FondoDeUnaCueva.wav"; player.Play(); } colocBarcos.menu(); Console.SetCursorPosition(24, 11);Console.Write("#############################"); Console.SetCursorPosition(24, 12);Console.Write("# #"); Console.SetCursorPosition(24, 13);Console.Write("# Selecciona una categoría: #"); Console.SetCursorPosition(24, 14);Console.Write("# #"); Console.SetCursorPosition(24, 15);Console.Write("# (1) Comenzar #"); Console.SetCursorPosition(24, 16);Console.Write("# (2) Opciones #"); Console.SetCursorPosition(24, 17);Console.Write("# (3) Salir #"); Console.SetCursorPosition(24, 18);Console.Write("# Versión 0.3 #"); Console.SetCursorPosition(24, 19);Console.Write("# #"); Console.SetCursorPosition(24, 20);Console.Write("#############################\n\n"); for(int i=0; i<=79; i++){ Console.Write("_"); } for(int i=0; i<=79; i++){ Console.Write("="); Thread.Sleep(8); } Console.Write(">>> "); validar = int.TryParse(Console.ReadLine(), out opcion1); switch(opcion1){ case 1: do{ // Validación del menú secundario if(sonido == true){ player.SoundLocation = ".\\sonido\\MenuOpciones.wav"; player.Play(); } colocBarcos.menu(); Console.SetCursorPosition(24, 11);Console.Write("Introduce tu nombre: "); nombreJ1 = Console.ReadLine(); while(nombreJ1.Length>7){ // Validación en el nombre de J1 colocBarcos.menu(); Console.SetCursorPosition(24, 11);Console.Write("Pon un nombre más corto: "); nombreJ1 = Console.ReadLine(); } turnos.setNombreJ1(nombreJ1); colocBarcos.setNombreJ1(nombreJ1); Console.SetCursorPosition(24, 13);Console.Write("Coloca tus embarcaciones\n"); Console.SetCursorPosition(24, 14);Console.Write("------------------------\n"); Console.SetCursorPosition(24, 15);Console.Write("(1) Automáticamente\n"); Console.SetCursorPosition(24, 16);Console.Write("(2) Manualmente\n"); Console.SetCursorPosition(24, 18);Console.Write(">>> "); validar = int.TryParse(Console.ReadLine(), out opcion2); }while(opcion2!=1 && opcion2!=2); switch(opcion2){ case 1: colocBarcos.colocacionBarcosAutomatJ1(); break; case 2: colocBarcos.colocacionBarcosManualJ1(); break; } colocBarcos.colocacionBarcosAutomatJ2(); turnos.setTablero1(colocBarcos.getTableroJ1()); turnos.setTablero2(colocBarcos.getTableroJ2()); turnos.setPosJ2(colocBarcos.getPosJ2()); turnos.setBarcosJ1(colocBarcos.getBarcosJ1()); turnos.setBarcosJ2(colocBarcos.getBarcosJ2()); do{ // Cambia el turno de J1 a J2 y viceversa do{ // Vuelve a tirar J1 si hunde un barco turnos.introducirFila(); turnos.introducirColumna(); turnos.realizarComprobacionesJ1(); }while(colocBarcos.getTableroJ2()[turnos.getFila()-1,turnos.getColumna()-1] == (char)'X' && turnos.getRepetirTirada() == true); do{ // Vuelve a tirar J2 si hunde un barco turnos.ataqueAlAzarDeJ2(); turnos.realizarComprobacionesJ2(); }while(colocBarcos.getTableroJ1()[turnos.getFila()-1,turnos.getColumna()-1] == (char)'X' && turnos.getRepetirTirada() == true); if(turnos.getBarcosJ1() == 0){ Console.Write("Has perdido la partida. La próxima vez será."); Console.ReadKey(); break; } }while(turnos.getBarcosJ2() != 0); // Si todos los barcos enemigos están hundidos, se acabó la partida Console.Write("Has ganado la partida. Enhorabuena!!"); break; case 2: do{ if(sonido == true){ player.SoundLocation = ".\\sonido\\FondoDeUnaCueva.wav"; player.Play(); } colocBarcos.menu(); Console.SetCursorPosition(24, 11);Console.Write("(1) Elegir cantidad de barcos\n"); Console.SetCursorPosition(24, 12);Console.Write("(2) Poner nombre al jugador 2\n"); Console.SetCursorPosition(24, 13);Console.Write("(3) Activar efectos de sonido\n"); Console.SetCursorPosition(24, 14);Console.Write("(4) Volver al menú\n"); Console.SetCursorPosition(24, 16);Console.Write(">>> "); validar = int.TryParse(Console.ReadLine(), out opcion2); switch(opcion2){ case 1: do{ colocBarcos.menu(); Console.SetCursorPosition(24, 11);Console.Write("¿Con cuántos barcos quieres jugar? (Máx 30)"); Console.SetCursorPosition(24, 13);Console.Write(">>> "); validar = int.TryParse(Console.ReadLine(), out barcosIniciales); }while(barcosIniciales<1 || barcosIniciales>30); colocBarcos.setBarcosIniciales(barcosIniciales); Console.SetCursorPosition(24, 15);Console.Write("Cambios guardados correctamente!"); Thread.Sleep(1250); break; case 2: colocBarcos.menu(); Console.SetCursorPosition(24, 11);Console.Write("Introduce el nombre de tu oponente "); Console.SetCursorPosition(24, 13);Console.Write(">>> "); nombreJ2 = Console.ReadLine(); while(nombreJ2.Length>7){ colocBarcos.menu(); Console.SetCursorPosition(24, 11);Console.Write("Pon un nombre más corto"); Console.SetCursorPosition(24, 13);Console.Write(">>> "); nombreJ2 = Console.ReadLine(); } turnos.setNombreJ2(nombreJ2); Console.SetCursorPosition(24, 15);Console.Write("Nombre guardado correctamente!"); Thread.Sleep(1250); break; case 3: colocBarcos.menu(); Console.SetCursorPosition(24, 11);Console.Write("¿Qué desea hacer?"); Console.SetCursorPosition(24, 12);Console.Write("-----------------"); Console.SetCursorPosition(24, 13);Console.Write("(1) Activar efectos de sonido "); Console.SetCursorPosition(24, 14);Console.Write("(2) Desactivar efectos de sonido (defecto)"); Console.SetCursorPosition(24, 16);Console.Write(">>> "); validar = int.TryParse(Console.ReadLine(), out opcion3); if(opcion3 == 1){ if (!DIR.Exists){ Console.SetCursorPosition(24, 18);Console.Write("Error. No se encuentra la carpeta 'sonido'."); Thread.Sleep(1750); }else{ sonido = true; Console.SetCursorPosition(24, 18);Console.Write("Sonido activado correctamente!"); Thread.Sleep(1250); } }else if(opcion3 == 2){ sonido = false; Console.SetCursorPosition(24, 18);Console.Write("Sonido desactivado correctamente!"); Thread.Sleep(1250); } turnos.setSonido(sonido); colocBarcos.setSonido(sonido); break; case 4: volverAtras = false; break; } }while(volverAtras == true); break; case 3: break; } }while(opcion1!=3); } } }
ColocacionDeBarcos.cs
Código
using System; using System.IO; using System.Threading; namespace Hundir_la_Flota{ public class ColocacionDeBarcos{ private bool validar = false, sonido = false; private int fila = 0, columna = 0, colocarBarco = 1; // Fil + Colum = Agua (0) || Barco (1) || Hundido (2) private int barcosIniciales = 6, barcosJ1 = 0, barcosJ2 = 0; private string nombreJ1 = null; public int[,] getTableroJ1(){ return tableroJ1; } public int[,] getTableroJ2(){ return tableroJ2; } public int[,] getPosJ2(){ return posJ2; } public int getBarcosJ1(){ return barcosJ1; } public int getBarcosJ2(){ return barcosJ2; } public void setBarcosIniciales(int barcosIniciales){ this.barcosIniciales = barcosIniciales; } public void setNombreJ1(string nombreJ1){ this.nombreJ1 = nombreJ1; } public void setSonido(bool sonido){ this.sonido = sonido; } public void colocacionBarcosAutomatJ1(){ menu(); Console.Write("\n\n Cargando barcos"); for(int i=0;i<barcosIniciales;i++){ int hfila = h.Next(1,6), hcolumna = h.Next(1,8); fila=hfila; columna=hcolumna; if(tableroJ1[fila-1,columna-1] != colocarBarco){ tableroJ1[fila-1,columna-1] = colocarBarco; barcosJ1++; Console.Write("."); }else{ i--; } } Console.Write("Listo!"); Thread.Sleep(1500); } public void colocacionBarcosManualJ1(){ for(int i=0;i<barcosIniciales;i++){ do{ menu2(); Console.SetCursorPosition(30, 11);Console.Write("Barquito velero "+(i+1)); Console.SetCursorPosition(30, 12);Console.Write("-----------------"); Console.SetCursorPosition(30, 14);Console.Write("Fila: "); validar = int.TryParse(Console.ReadLine(), out fila); }while(fila<1 || fila>6); do{ menu2(); Console.SetCursorPosition(30, 11);Console.Write("Barquito velero "+(i+1)); Console.SetCursorPosition(30, 12);Console.Write("-----------------"); Console.SetCursorPosition(30, 14);Console.Write("Fila: "+fila); Console.SetCursorPosition(30, 15);Console.Write("Columna: "); validar = int.TryParse(Console.ReadLine(), out columna); }while(columna<1 || columna>10); if(tableroJ1[fila-1,columna-1] != (char)'B'){ tableroJ1[fila-1,columna-1] = colocarBarco; barcosJ1++; if(sonido == true){ player.SoundLocation = ".\\sonido\\ColocarBarco.wav"; player.Play(); } menu2(); Console.SetCursorPosition(30, 11);Console.Write("Barquito velero "+(i+1)); Console.SetCursorPosition(30, 12);Console.Write("-----------------"); Console.SetCursorPosition(30, 14);Console.Write("Fila: "+fila); Console.SetCursorPosition(30, 15);Console.Write("Columna: "+columna); Console.SetCursorPosition(30, 17);Console.Write("Barco "+(i+1)+" colocado correctamente!"); Thread.Sleep(1250); }else if(tableroJ1[fila-1,columna-1] == (char)'B'){ if(sonido == true){ player.SoundLocation = ".\\sonido\\PosicionYaDada.wav"; player.Play(); } menu2(); Console.SetCursorPosition(30, 11);Console.Write("Barquito velero "+(i+1)+"\n\n"); Console.SetCursorPosition(30, 12);Console.Write("-----------------"); Console.SetCursorPosition(30, 14);Console.Write("Fila: "+fila+"\n"); Console.SetCursorPosition(30, 15);Console.Write("Columna: "+columna); Console.SetCursorPosition(30, 17);Console.Write("Ya has colocado un barco en esta posición."); Thread.Sleep(1250); i--; } } // Fin for } // Fin método public void colocacionBarcosAutomatJ2(){ for(int i=0;i<barcosIniciales;i++){ int rfila = r.Next(1,6), rcolumna = r.Next(1,8); fila=rfila; columna=rcolumna; if(tableroJ2[fila-1,columna-1] != colocarBarco){ tableroJ2[fila-1,columna-1] = colocarBarco; barcosJ2++; }else{ i--; } } } public void menu(){ Console.Clear(); Console.Write(" _ _\n"); Console.Write(" |_| | | |\\ | | \\ | |_|\n"); Console.Write(" | | |_| | \\| |__| | | \\\n"); Console.Write(" _ __ _ ___ __\n"); Console.Write(" | |_| |__ | | | | |__|\n"); Console.Write(" |__ | | | |__ |_| | | |\t\t _|_\n"); Console.Write("\t\t\t\t\t ___|___\n"); Console.Write("\t\t\t\t\t \\______/\n"); Console.Write("__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\\n"); Console.Write("\n A B C D E F G H\t\t\n"); Console.Write(" 1 - - - - - - - -\n"); Console.Write(" 2 - - - - - - - -\n"); Console.Write(" 3 - - - - - - - -\n"); Console.Write(" 4 - - - - - - - -\n"); Console.Write(" 5 - - - - - - - -\n"); Console.Write(" 6 - - - - - - - -\n\n\n"); } public void menu2(){ Console.Clear(); Console.Write(" _ _\n"); Console.Write(" |_| | | |\\ | | \\ | |_|\n"); Console.Write(" | | |_| | \\| |__| | | \\\n"); Console.Write(" _ __ _ ___ __\n"); Console.Write(" | |_| |__ | | | | |__|\n"); Console.Write(" |__ | | | |__ |_| | | |\t\t _|_\n"); Console.Write("\t\t\t\t\t ___|___\n"); Console.Write("\t\t\t\t\t \\______/\n"); Console.Write("__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\__/\\"); Console.Write("\n\n"); Console.Write(" Mapa de "+nombreJ1+"\n"); Console.Write(" ---------------\n\n"); for(int j=0;j<tableroJ1.GetLength(0);j++){ for(int k=0;k<tableroJ1.GetLength(1);k++){ if(tableroJ1[j,k] == 1){ tableroJ1[j,k] = (char)'B'; } if(tableroJ1[j,k] == 0){ tableroJ1[j,k] = (char)'-'; } Console.Write(" "+(char)tableroJ1[j,k]); } Console.Write("\n"); } } } // Fin clase } // Fin namespace
Turnos.cs
Código
using System; using System.IO; using System.Threading; namespace Hundir_la_Flota{ public class Turnos{ private bool validar = false, repetirTirada = true, sonido = false; private int fila = 0, columna = 0; private int barcosJ1 = 0, barcosJ2 = 0, hundidoJ1 = 0, hundidoJ2 = 0, rondasJ1 = 0, rondasJ2 = 0; private string nombreJ1 = null, nombreJ2 = "Máquina"; public void setNombreJ1(string nombreJ1){ this.nombreJ1 = nombreJ1; } public void setNombreJ2(string nombreJ2){ this.nombreJ2 = nombreJ2; } public void setTablero1(int[,] tableroJ1){ this.tableroJ1 = tableroJ1; } public void setTablero2(int[,] tableroJ2){ this.tableroJ2 = tableroJ2; } public void setPosJ2(int[,] posJ2){ this.posJ2 = posJ2; } public void setBarcosJ1(int barcosJ1){ this.barcosJ1 = barcosJ1; } public void setBarcosJ2(int barcosJ2){ this.barcosJ2 = barcosJ2; } public void setSonido(bool sonido){ this.sonido = sonido; } public bool getRepetirTirada(){ return repetirTirada; } public int getFila(){ return fila; } public int getColumna(){ return columna; } public int getBarcosJ1(){ return barcosJ1; } public int getBarcosJ2(){ return barcosJ2; } public void introducirFila(){ do{ Console.Clear(); Console.Write("\n Mapa Jugador 1"); Console.Write("\n ----------------\n\n"); // Muestra los barcos J1 for(int i=0;i<tableroJ1.GetLength(0);i++){ for(int j=0;j<tableroJ1.GetLength(1);j++){ if(tableroJ1[i,j]==1){ tableroJ1[i,j]=(char)'B'; } if(tableroJ1[i,j]==0){ tableroJ1[i,j]=(char)'-'; } Console.Write(" "+(char)tableroJ1[i,j]); } Console.Write("\n"); } Console.Write("\n\n Mapa Jugador 2"); Console.Write("\n ----------------\n\n"); for(int i=0;i<tableroJ2.GetLength(0);i++){ // Muestra los barcos J2 for(int j=0;j<tableroJ2.GetLength(1);j++){ posJ2[i,j]=0; if(tableroJ2[i,j]==1){ // Si hay un barco posJ2[i,j]=tableroJ2[i,j]; // Guardo su posición tableroJ2[i,j]=(char)'-'; // y muestro agua por pantalla } if(tableroJ2[i,j]==0){ tableroJ2[i,j]=(char)'-'; } Console.Write(" "+(char)tableroJ2[i,j]); } Console.Write("\n"); } //------ for(int i=0;i<tableroJ2.GetLength(0);i++){ for(int j=0;j<tableroJ2.GetLength(1);j++){ if(posJ2[i,j]==1){ tableroJ2[i,j]=posJ2[i,j]; // Revivo los barcos J2 (antes los borré del mapa) } } } Console.SetCursorPosition(32, 1);Console.Write("Turno J1 - "+nombreJ1); Console.SetCursorPosition(32, 2);Console.Write("-----------------\n\n"); Console.SetCursorPosition(32, 4);Console.Write("Barcos: "+barcosJ1); Console.SetCursorPosition(32, 5);Console.Write("Has hundido: "+hundidoJ1); Console.SetCursorPosition(32, 6);Console.Write("Te han hundido: "+hundidoJ2); Console.SetCursorPosition(32, 7);Console.Write("Rondas: "+rondasJ1); Console.SetCursorPosition(32, 9);Console.Write("Atacar J1 ==> Fila: "); validar = int.TryParse(Console.ReadLine(), out fila); }while(fila<1 || fila>6); } public void introducirColumna(){ do{ Console.Clear(); Console.Write("\n Mapa Jugador 1"); Console.Write("\n ----------------\n\n"); for(int i=0;i<tableroJ1.GetLength(0);i++){ for(int j=0;j<tableroJ1.GetLength(1);j++){ if(tableroJ1[i,j]==1){ tableroJ1[i,j]=(char)'B'; } if(tableroJ1[i,j]==0){ tableroJ1[i,j]=(char)'-'; } Console.Write(" "+(char)tableroJ1[i,j]); } Console.Write("\n"); } Console.Write("\n\n Mapa Jugador 2"); Console.Write("\n ----------------\n\n"); for(int i=0;i<tableroJ2.GetLength(0);i++){ for(int j=0;j<tableroJ2.GetLength(1);j++){ if(tableroJ2[i,j]==1){ // Si hay un barco posJ2[i,j]=tableroJ2[i,j]; // Guardo su posición tableroJ2[i,j]=(char)'-'; // y muestro agua por pantalla } if(tableroJ2[i,j]==0){ tableroJ2[i,j]=(char)'-'; } Console.Write(" "+(char)tableroJ2[i,j]); } Console.Write("\n"); } //------ for(int i=0;i<tableroJ2.GetLength(0);i++){ for(int j=0;j<tableroJ2.GetLength(1);j++){ if(posJ2[i,j]==1){ tableroJ2[i,j]=posJ2[i,j]; } } } Console.SetCursorPosition(32, 1);Console.Write("Turno J1 - "+nombreJ1); Console.SetCursorPosition(32, 2);Console.Write("-----------------\n\n"); Console.SetCursorPosition(32, 4);Console.Write("Barcos: "+barcosJ1); Console.SetCursorPosition(32, 5);Console.Write("Has hundido: "+hundidoJ1); Console.SetCursorPosition(32, 6);Console.Write("Te han hundido: "+hundidoJ2); Console.SetCursorPosition(32, 7);Console.Write("Rondas: "+rondasJ1); Console.SetCursorPosition(32, 9);Console.Write("Atacar J1 ==> Fila: "+fila); Console.SetCursorPosition(32, 10);Console.Write(" ==> Columna: "); validar = int.TryParse(Console.ReadLine(), out columna); }while(columna<1 || columna>8); Console.Write("\n\n"); } public void realizarComprobacionesJ1(){ repetirTirada = true; if(tableroJ2[fila-1,columna-1] == 1){ // Realiza el ataque a la posición indicada Console.SetCursorPosition(32, 12);Console.Write("Barco Hundido. Vuelves a atacar J1.\n"); tableroJ2[fila-1,columna-1]=(char)'X'; if(sonido == true){ player.SoundLocation = ".\\sonido\\Explosion.wav"; player.Play(); } hundidoJ1++; barcosJ2--; }else if(tableroJ2[fila-1,columna-1] == (char)'A'){ if(sonido == true){ player.SoundLocation = ".\\sonido\\PosicionYaDada.wav"; player.Play(); } Console.SetCursorPosition(32, 12);Console.Write("Ya has atacado esta posición. Pasas turno."); }else if(tableroJ2[fila-1,columna-1] == (char)'X'){ if(sonido == true){ player.SoundLocation = ".\\sonido\\PosicionYaDada.wav"; player.Play(); } Console.SetCursorPosition(32, 12);Console.Write("Ya has hundido este barco. Pasas turno."); repetirTirada = false; }else{ if(sonido == true){ player.SoundLocation = ".\\sonido\\NoHayBarco.wav"; player.Play(); } Console.Clear(); tableroJ2[fila-1,columna-1] = (char)'A'; Console.Write("\n Mapa Jugador 1"); Console.Write("\n ----------------\n\n"); for(int i=0;i<tableroJ1.GetLength(0);i++){ for(int j=0;j<tableroJ1.GetLength(1);j++){ Console.Write(" "+(char)tableroJ1[i,j]); } Console.Write("\n"); } Console.Write("\n\n Mapa Jugador 2"); Console.Write("\n ----------------\n\n"); for(int i=0;i<tableroJ2.GetLength(0);i++){ for(int j=0;j<tableroJ2.GetLength(1);j++){ if(tableroJ2[i,j]==1){ // Si hay un barco posJ2[i,j]=tableroJ2[i,j]; // Guardo su posición tableroJ2[i,j]=(char)'-'; // y muestro agua por pantalla } if(tableroJ2[i,j]==0){ tableroJ2[i,j]=(char)'-'; } Console.Write(" "+(char)tableroJ2[i,j]); } Console.Write("\n"); } //------ for(int i=0;i<tableroJ2.GetLength(0);i++){ for(int j=0;j<tableroJ2.GetLength(1);j++){ if(posJ2[i,j]==1){ tableroJ2[i,j]=posJ2[i,j]; } } } Console.SetCursorPosition(32, 1);Console.Write("Turno J1 - "+nombreJ1); Console.SetCursorPosition(32, 2);Console.Write("-----------------\n\n"); Console.SetCursorPosition(32, 4);Console.Write("Barcos: "+barcosJ1); Console.SetCursorPosition(32, 5);Console.Write("Has hundido: "+hundidoJ1); Console.SetCursorPosition(32, 6);Console.Write("Te han hundido: "+hundidoJ2); Console.SetCursorPosition(32, 7);Console.Write("Rondas: "+rondasJ1); Console.SetCursorPosition(32, 9);Console.Write("Atacar J1 ==> Fila: "+fila); Console.SetCursorPosition(32, 10);Console.Write(" ==> Columna: "+columna); Console.SetCursorPosition(32, 12);Console.Write("Has tocado agua. Pasas turno a J2.\n"); } rondasJ1++; Thread.Sleep(2000); } public void ataqueAlAzarDeJ2(){ Console.Clear(); int rfila7 = r.Next(1,6), rcolumna7 = r.Next(1,8); Console.Clear(); Console.Write("\n Mapa Jugador 1"); Console.Write("\n ----------------\n\n"); for(int i=0;i<tableroJ1.GetLength(0);i++){ for(int j=0;j<tableroJ1.GetLength(1);j++){ if(tableroJ1[i,j]==1){ tableroJ1[i,j]=(char)'B'; } if(tableroJ1[i,j]==0){ tableroJ1[i,j]=(char)'-'; } Console.Write(" "+(char)tableroJ1[i,j]); } Console.Write("\n"); } Console.Write("\n\n Mapa Jugador 2"); Console.Write("\n ----------------\n\n"); for(int i=0;i<tableroJ2.GetLength(0);i++){ // Muestra los barcos J2 for(int j=0;j<tableroJ2.GetLength(1);j++){ posJ2[i,j]=0; if(tableroJ2[i,j]==1){ // Si hay un barco posJ2[i,j]=tableroJ2[i,j]; // Guardo su posición tableroJ2[i,j]=(char)'-'; // y muestro agua por pantalla } if(tableroJ2[i,j]==0){ tableroJ2[i,j]=(char)'-'; } Console.Write(" "+(char)tableroJ2[i,j]); } Console.Write("\n"); } //------ for(int i=0;i<tableroJ2.GetLength(0);i++){ for(int j=0;j<tableroJ2.GetLength(1);j++){ if(posJ2[i,j]==1){ tableroJ2[i,j]=posJ2[i,j]; // Revivo los barcos J2 (antes los borré del mapa) } } } Console.SetCursorPosition(32, 1);Console.Write("Turno J2 - "+nombreJ2); Console.SetCursorPosition(32, 2);Console.Write("------------------\n\n"); Console.SetCursorPosition(32, 4);Console.Write("Barcos: "+barcosJ2); Console.SetCursorPosition(32, 5);Console.Write("Has hundido: "+hundidoJ2); Console.SetCursorPosition(32, 6);Console.Write("Te han hundido: "+hundidoJ1); Console.SetCursorPosition(32, 7);Console.Write("Rondas: "+rondasJ2); Console.SetCursorPosition(32, 9);Console.Write("Atacar J2 ==> Fila: "); // Atacar J2 a J1 Thread.Sleep(1500); Console.Write(rfila7); fila=rfila7; Console.SetCursorPosition(32, 10);Console.Write(" ==> Columna: "); Thread.Sleep(1500); Console.Write(rcolumna7); columna=rcolumna7; Thread.Sleep(1000); Console.Write("\n\n"); } public void realizarComprobacionesJ2(){ repetirTirada = true; if(tableroJ1[fila-1,columna-1] == (char)'B'){ Console.SetCursorPosition(32, 12);Console.Write("Barco Hundido. Vuelves a atacar jugador 2.\n"); tableroJ1[fila-1,columna-1] = (char)'X'; if(sonido == true){ player.SoundLocation = ".\\sonido\\Explosion.wav"; player.Play(); } hundidoJ2++; barcosJ1--; }else if(tableroJ1[fila-1,columna-1] == (char)'A'){ if(sonido == true){ player.SoundLocation = ".\\sonido\\PosicionYaDada.wav"; player.Play(); } Console.SetCursorPosition(32, 12);Console.Write("Ya has atacado esta posición. Pasas turno."); }else if(tableroJ1[fila-1,columna-1] == (char)'X'){ if(sonido == true){ player.SoundLocation = ".\\sonido\\PosicionYaDada.wav"; player.Play(); } Console.SetCursorPosition(32, 12);Console.Write("Ya has hundido este barco. Pasas turno."); repetirTirada = false; }else{ if(sonido == true){ player.SoundLocation = ".\\sonido\\NoHayBarco.wav"; player.Play(); } Console.SetCursorPosition(32, 12);Console.Write("Has tocado agua. Pasas turno a J1.\n"); tableroJ1[fila-1,columna-1]=(char)'A'; } rondasJ2++; Thread.Sleep(2000); } } }
Lo iré actualizando poquito a poco con el tiempo, así que nada de prisas ya que simplemente lo hago por aprender y el segundo motivo, por aburrimiento. Espero que os guste.
Feliz Navidad gente!