Пример #1
0
        static void Main(string[] args)
        {
            Pantallas pantallas = new Pantallas();
            Jugador   jugador_1 = new Jugador();
            Jugador   jugador_2 = new Jugador();


            List <Jugada> movidas = new List <Jugada>();

            for (int i = 1; i < 10; i++)
            {
                movidas.Add(new Jugada {
                    Posicion = i.ToString(), Jugador = " "
                });
            }

            var  opcion       = 0;
            bool SigueJugando = true;
            bool turno        = true;

            do
            {
                pantallas.MensajeInicial();
                Console.Write("\t Ingrese una opcion (1-3) -> ");
                try
                {
                    opcion = Convert.ToInt32(Console.ReadLine());
                }
                catch (Exception)
                {
                }

                switch (opcion)
                {
                case 1:
                    Inicializar(jugador_1, jugador_2, ref turno);
                    ComenzarJuego(jugador_1, jugador_2, pantallas, movidas, turno);
                    break;

                case 2:
                    TablaDePuntaje(jugador_1, jugador_2);
                    break;

                case 3:
                    SigueJugando = false;
                    break;
                }
            } while (SigueJugando);

            pantallas.Salida();
        }
Пример #2
0
        private static void ComenzarJuego(Jugador jugador_1, Jugador jugador_2, Pantallas pantallas, List <Jugada> movidas, bool turno)
        {
            int            estado = -1; //estado 5 juego en progreso
            char           ganador;
            bool           sinMovidas = false;
            ConsoleKeyInfo tecla;

            do
            {
                pantallas.Encabezado(jugador_1, jugador_2, turno);
                pantallas.DibujarTablero(movidas);
                tecla = Console.ReadKey();

                try
                {
                    switch (tecla.Key)
                    {
                    case ConsoleKey.Backspace:      //retroceso vuelve al menu
                        sinMovidas = true;
                        break;

                    case ConsoleKey.D1:
                        if (movidas[0].Posicion == "1")
                        {
                            movidas[0].Posicion = " ";
                            if (turno)
                            {
                                movidas[0].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[0].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }

                        break;

                    case ConsoleKey.D2:
                        if (movidas[1].Posicion == "2")
                        {
                            movidas[1].Posicion = " ";
                            if (turno)
                            {
                                movidas[1].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[1].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }
                        break;

                    case ConsoleKey.D3:
                        if (movidas[2].Posicion == "3")
                        {
                            movidas[2].Posicion = " ";
                            if (turno)
                            {
                                movidas[2].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[2].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }

                        break;

                    case ConsoleKey.D4:
                        if (movidas[3].Posicion == "4")
                        {
                            movidas[3].Posicion = " ";
                            if (turno)
                            {
                                movidas[3].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[3].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }
                        break;

                    case ConsoleKey.D5:
                        if (movidas[4].Posicion == "5")
                        {
                            movidas[4].Posicion = " ";
                            if (turno)
                            {
                                movidas[4].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[4].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }
                        break;

                    case ConsoleKey.D6:
                        if (movidas[5].Posicion == "6")
                        {
                            movidas[5].Posicion = " ";
                            if (turno)
                            {
                                movidas[5].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[5].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }
                        break;

                    case ConsoleKey.D7:
                        if (movidas[6].Posicion == "7")
                        {
                            movidas[6].Posicion = " ";
                            if (turno)
                            {
                                movidas[6].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[6].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }
                        break;

                    case ConsoleKey.D8:
                        if (movidas[7].Posicion == "8")
                        {
                            movidas[7].Posicion = " ";
                            if (turno)
                            {
                                movidas[7].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[7].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }
                        break;

                    case ConsoleKey.D9:
                        if (movidas[8].Posicion == "9")
                        {
                            movidas[8].Posicion = " ";
                            if (turno)
                            {
                                movidas[8].Jugador = "X";
                                turno = false;
                            }
                            else
                            {
                                movidas[8].Jugador = "0";
                                turno = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("\t Casilla ya Jugada!");
                            Console.ReadKey();
                        }
                        break;

                    default:
                        break;
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("\t Movida NO disponible");
                    Console.ReadKey();
                }

                //analizar jugadas
                estado = ChequearGanador(ref sinMovidas, movidas);
                switch (estado)
                {
                case -1:     //Juego sigue normal
                    break;

                case 0:     //Hay empate
                    pantallas.HayEmpate();
                    sinMovidas = true;
                    break;

                case 1:     //Gano X
                    ganador = 'X';
                    pantallas.HayGanador(jugador_1, jugador_2, ganador);
                    jugador_1.Puntaje++;
                    sinMovidas = true;
                    break;

                case 2:     //Gano X
                    ganador = '0';
                    pantallas.HayGanador(jugador_1, jugador_2, ganador);
                    jugador_2.Puntaje++;
                    sinMovidas = true;
                    break;
                }
            } while (!sinMovidas);

            Console.WriteLine("\tVolver al Menu, Presione una Tecla");
            Console.ReadKey();
        }