Example #1
0
        static void Main(string[] args)
        {
            bool           victoria = false;
            Random         r        = new Random();
            ConsoleKeyInfo intro;
            int            fila, columna;

            int[]  turno     = { 0, 1 }; // 1 jugador, 0 ordenador
            char[] valor     = { 'X', 'O' };
            string mensaje   = "";
            string continuar = "Pulsa intro para continuar";

            Tablero tableroJugador   = new Tablero();
            Tablero tableroOrdenador = new Tablero();
            Tablero tableroOponente  = new Tablero();

            // el jugador coloca los barcos
            tableroJugador.Rellenar();
            Console.WriteLine("Tu tablero:");
            tableroJugador.MostrarTablero();

            Console.WriteLine("Generando barcos del ordenador...");
            // se colocan los barcos del ordenador
            tableroOrdenador.Generar();
            Console.WriteLine("Tablero ordenador:");
            tableroOrdenador.MostrarTablero();

            Console.WriteLine("Proceso finalizado. Pulsa intro para comenzar!");
            intro = Console.ReadKey(true);
            Console.WriteLine(intro.KeyChar);
            if (intro.KeyChar == 13)
            {
                Console.WriteLine("has pulsado enter.");

                while (!victoria)
                {
                    Console.Clear();
                    Console.WriteLine("Turno del jugador.");
                    Console.WriteLine("Introduce fila (0 - 7):");
                    try
                    {
                        fila = Convert.ToInt16(Console.ReadLine());
                        while (fila > 8 || fila < 0)
                        {
                            Console.WriteLine("Introduce una fila correcta:");
                            fila = Convert.ToInt16(Console.ReadLine());
                        }

                        Console.WriteLine("Introduce columna (0 - 7):");
                        columna = Convert.ToInt16(Console.ReadLine());
                        while (columna > 8 || columna < 0)
                        {
                            Console.WriteLine("Introduce una columna correcta:");
                            columna = Convert.ToInt16(Console.ReadLine());
                        }

                        mensaje = tableroOrdenador.Turnos(fila, columna, turno[1]);

                        if (mensaje == "Agua")
                        {
                            Console.WriteLine(mensaje);
                            tableroOponente.TableroOponente(fila, columna, valor[1]);
                        }
                        else if (mensaje == "Tocado.")
                        {
                            Console.WriteLine(mensaje);
                            tableroOponente.TableroOponente(fila, columna, valor[0]);
                        }
                        else if (mensaje == "Tocado y hundido.")
                        {
                            Console.WriteLine(mensaje);
                            tableroOponente.TableroOponente(fila, columna, valor[0]);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("error: {0}", e);
                    }

                    if (mensaje == "Victoria!!!")
                    {
                        victoria = true;
                        Console.WriteLine("Victoria del jugador! \nFIN DE JUEGO");
                    }

                    Console.WriteLine(continuar);
                    intro = Console.ReadKey(true);
                    Console.WriteLine(intro.KeyChar);

                    while (intro.KeyChar != 13)
                    {
                        Console.WriteLine(continuar);
                        intro = Console.ReadKey(true);
                    }

                    Console.Clear();
                    Console.WriteLine("Turno del ordenador.");
                    Console.WriteLine("Introduce fila (0 - 7):");
                    fila = r.Next(0, 8);
                    Console.WriteLine("Fila: {0} ", fila);

                    Console.WriteLine("Introduce Columna (0 - 7):");
                    columna = r.Next(0, 8);
                    Console.WriteLine("Columna: {0} ", columna);

                    mensaje = tableroJugador.Turnos(fila, columna, turno[0]);

                    if (mensaje == "Victoria!!!")
                    {
                        victoria = true;
                        Console.WriteLine("Victoria del ordenador! \nFIN DE JUEGO");
                    }

                    Console.WriteLine("Turno ordenador: {0} ", mensaje);

                    Console.WriteLine(continuar);
                    intro = Console.ReadKey(true);
                    Console.WriteLine(intro.KeyChar);

                    while (intro.KeyChar != 13)
                    {
                        Console.WriteLine(continuar);
                        intro = Console.ReadKey(true);
                    }
                }
            }
            else
            {
                Console.WriteLine("NO has pulsado enter.");
            }
            Console.ReadKey();
        }
Example #2
0
        public static void Main(string[] args)
        {
            Tablero tablero_jugador   = new Tablero();
            Tablero tablero_ordenador = new Tablero();

            tablero_jugador.Rellenar();

            tablero_ordenador.Generar();

            Console.WriteLine("Proceso finalizado. Pulsa Intro para comenzar!");
            Console.ReadKey();

            bool    ganador       = false;
            bool    turno_jugador = true;
            Barco   barco_actual;
            Casilla casilla_actual;
            int     x;
            int     y;

            do
            {
                Console.Clear();

                if (turno_jugador)
                {
                    Console.WriteLine("Turno del jugador.");

                    Console.WriteLine("Introduce fila (1 - {0}):", Tablero.width);

                    while (!int.TryParse(Console.ReadLine(), out x) || x < 1 || x > Tablero.width)
                    {
                        Console.WriteLine("Error, debe introducir un número válido para la fila. Vuelva a intentarlo:");
                    }

                    Console.WriteLine("Introduce fila (1 - {0}):", Tablero.height);

                    while (!int.TryParse(Console.ReadLine(), out y) || y < 1 || y > Tablero.height)
                    {
                        Console.WriteLine("Error, debe introducir un número válido para la columna. Vuelva a intentarlo:");
                    }

                    x -= 1;
                    y -= 1;

                    casilla_actual = tablero_ordenador.GetPieza(x, y);
                    if (casilla_actual.GetEstado().Equals(Casilla.Estados.BARCO))
                    {
                        casilla_actual.SetEstado(Casilla.Estados.TOCADO);
                    }
                    else
                    {
                        Console.WriteLine("AGUA");
                    }

                    barco_actual = tablero_ordenador.GetBarcoTablero(x, y);
                    if (null != barco_actual)
                    {
                        if (barco_actual.EstaHundido())
                        {
                            Console.WriteLine("TOCADO Y HUNDIDO");
                        }
                        else if (barco_actual.EstaTocado())
                        {
                            Console.WriteLine("TOCADO");
                        }
                    }

                    tablero_ordenador.MostrarOcuto();

                    if (tablero_ordenador.TodosHundidos())
                    {
                        ganador = true;
                    }
                    else
                    {
                        turno_jugador = false;
                        Console.WriteLine("Pulsa Intro para continuar...");
                        Console.ReadKey();
                    }
                }
                else
                {
                    Console.WriteLine("Turno del ordenador.");

                    Random rnd = new Random();
                    x = rnd.Next(0, Tablero.width);
                    y = rnd.Next(0, Tablero.height);

                    Console.WriteLine("Fila {0}, Columna {1}", y + 1, x + 1);

                    casilla_actual = tablero_jugador.GetPieza(x, y);
                    if (casilla_actual.GetEstado().Equals(Casilla.Estados.BARCO))
                    {
                        casilla_actual.SetEstado(Casilla.Estados.TOCADO);
                    }
                    else
                    {
                        Console.WriteLine("AGUA");
                    }

                    barco_actual = tablero_jugador.GetBarcoTablero(x, y);
                    if (null != barco_actual)
                    {
                        if (barco_actual.EstaHundido())
                        {
                            Console.WriteLine("TOCADO Y HUNDIDO");
                        }
                        else if (barco_actual.EstaTocado())
                        {
                            Console.WriteLine("TOCADO");
                        }
                    }

                    tablero_jugador.Mostrar();

                    if (tablero_jugador.TodosHundidos())
                    {
                        ganador = true;
                    }
                    else
                    {
                        turno_jugador = true;
                        Console.WriteLine("Pulsa Intro para continuar...");
                        Console.ReadKey();
                    }
                }
            } while (!ganador);

            tablero_jugador.Mostrar();
            tablero_ordenador.Mostrar();

            if (turno_jugador)
            {
                Console.WriteLine("\nGANO EL JUGADOR");
            }
            else
            {
                Console.WriteLine("\nGANO EL ORDENADOR");
            }

            Console.ReadKey();
        }
Example #3
0
        public static void Main(string[] args)
        {
            bool    turnoJugador      = true;
            bool    victoriaJugador   = false;
            bool    victoriaOrdenador = false;
            bool    validaIntro;
            int     fila             = 0;
            int     columna          = 0;
            Tablero tableroJugador   = new Tablero();
            Tablero tableroOrdenador = new Tablero();

            tableroOrdenador.Generar();
            tableroJugador.Rellenar();
            do
            {
                Console.Clear();
                if (turnoJugador)
                {
                    Console.WriteLine("TURNO DEL JUGADOR");
                    Console.WriteLine();
                    tableroOrdenador.PintarTablero(true);
                    Console.WriteLine();
                    do
                    {
                        try
                        {
                            validaIntro = false;
                            Console.Write("Introduzca Fila (1-8): ");
                            fila = Convert.ToInt32(Console.ReadLine());
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("La fila debe contener un número");
                            validaIntro = true;
                        }
                    } while (validaIntro);

                    do
                    {
                        try
                        {
                            validaIntro = false;
                            Console.Write("Introduzca Columna (1-8): ");
                            columna = Convert.ToInt32(Console.ReadLine());
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("La columna debe contener un número");
                            validaIntro = true;
                        }
                    } while (validaIntro);


                    string respuesta = tableroOrdenador.ComprobarCasilla(fila, columna);
                    Console.WriteLine(respuesta);
                    tableroOrdenador.PintarTablero(true);
                    Console.Write("Pulse intro para continuar");
                    Console.ReadLine();
                    victoriaJugador = tableroOrdenador.ComprobarVictoria();
                    turnoJugador    = false;
                }
                else
                {
                    Console.WriteLine("TURNO DEL ORDENADOR");
                    Console.WriteLine();
                    Random rand = new Random();
                    fila    = rand.Next(8) + 1;
                    columna = rand.Next(8) + 1;
                    string respuesta = tableroJugador.ComprobarCasilla(fila, columna);
                    Console.WriteLine("Fila: {0}, Columna: {1}", fila, columna);
                    Console.WriteLine(respuesta);
                    tableroJugador.PintarTablero(false);
                    Console.Write("Pulse intro para continuar");
                    Console.ReadLine();
                    victoriaOrdenador = tableroJugador.ComprobarVictoria();
                    turnoJugador      = true;
                }
            } while (!victoriaJugador && !victoriaOrdenador);
            if (victoriaJugador)
            {
                Console.WriteLine("HAS GANADO");
            }
            else
            {
                Console.WriteLine("HAS PERDIDO");
            }
        }