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(); }
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(); }