/** * pedimos al usuario que confirme la compra de varias butacas contiguas */ public void pedirConfirmacionCompraRecomendacion(ButacasContiguas butacas) { char[,] estadoSesion = cine.getEstadoSesion( sala, sesion); // marcamos las butacas seleccionadas por el usuario en el estado actual // de la sesion int huecos = 0; for (int i = 0; i < butacas.getNoButacas(); i++) { huecos = calcularNumeroPasillosHastaColumna(butacas.getFila(), butacas.getColumna() + i - 1, estadoSesion); estadoSesion[butacas.getFila() - 1, butacas.getColumna() + i + huecos - 1] = 'R'; } // mostramos la seleccion de butacas en consola mostrarEstadoSesion(estadoSesion); Console.WriteLine("Se recomiendan las butacas marcadas con R"); LecturaTeclado teclado = new LecturaTeclado(); respuesta = teclado.leerCaracter("Aceptas la compra? (s/n)"); }
static void Main1(string[] args) { //creamos un cine con 2 salas(con 2 sesiones) para probar las operaciones string[] horasSesiones = { "18:00", "22:00" }; Sala[] salas = { new Sala("Tiburon", horasSesiones, 9, 5, new int[] { 3 }), new Sala("Tron", horasSesiones, 2, 2) }; Cine cine = new Cine("CinemaVintage", salas); //necesitamos la ventanilla para mostrar el estado de la sesion VentanillaVirtualUsuario ventanilla = new VentanillaVirtualUsuario(cine, true); foreach (String pelicula in cine.getPeliculas()) { Console.WriteLine(pelicula); } cine.comprarEntrada(1, 1, 2, 1); cine.comprarEntrada(1, 1, 9, 3); int idVenta = cine.getIdEntrada(1, 1, 9, 3); Console.WriteLine("Id de venta es:" + idVenta); ButacasContiguas butacas = cine.recomendarButacasContiguas(4, 1, 1); cine.comprarEntradasRecomendadas(1, 1, butacas); int idVenta1 = cine.getIdEntrada(1, 1, butacas.getFila(), butacas.getColumna()); cine.recogerEntradas(idVenta1, 1, 1); ventanilla.mostrarEstadoSesion(cine.getEstadoSesion(1, 1)); Console.WriteLine("No. de butacas disponibles: " + cine.getButacasDisponiblesSesion(1, 1)); Console.WriteLine("Tickets :" + cine.recogerEntradas(idVenta, 1, 1)); Console.WriteLine("Tickets recomendados:" + cine.recogerEntradas(idVenta1, 1, 1)); }
static void Main(string[] args) { const string COMPRAR = "1"; const string RECOGER = "2"; const string CONSULTAR_SESION = "3"; const string COMPRAR_RECOMENDACION = "4"; const string SALIR = "5"; bool seguir = true; // creamos un cine con 2 salas (con 2 sesiones) para probar las operaciones string[] horasSesiones = { "18:00", "22:00" }; Sala[] salas = { new Sala("Tiburon", horasSesiones, 9, 5, new int[] { 3 }), new Sala("Tron", horasSesiones, 2, 2) }; Cine cine = new Cine("CinemaVintage", salas); // este programa puede utilizar solo las operaciones obligatorias o todas LecturaTeclado teclado = new LecturaTeclado(); char key = teclado.leerCaracter("Deseas probar solo las operaciones obligatorias? (s/n)"); VentanillaVirtualUsuario ventanilla; if (key == 's' || key == 'S') { // creamos una ventanilla solo para las operaciones obligatorias ventanilla = new VentanillaVirtualUsuario(cine, false); } else { // creamos una ventanilla para todas las operaciones ventanilla = new VentanillaVirtualUsuario(cine, true); } do { // Mostramos el menu principal y pedimos una operacion al usuario ventanilla.PedirOperacion(); string opcion = ventanilla.getOperacionSeleccionada(); switch (opcion) { case COMPRAR: // pedimos al usuario la sala, sesion y la butaca // solo se admiten butacas libres // estos datos quedan almacenados en el objeto ventanilla ventanilla.pedirDatosCompra(); // comprobamos si la sesion de la sala seleccionada esta llena if (!ventanilla.getSesionLlena()) { cine.comprarEntrada(ventanilla.getSala(), ventanilla.getSesion(), ventanilla.getFila(), ventanilla.getColumna()); Console.WriteLine("El id de la venta es " + cine.getIdEntrada(ventanilla.getSala(), ventanilla.getSesion(), ventanilla.getFila(), ventanilla.getColumna())); } else { Console.WriteLine("La sesion seleccionada está llena"); } break; case RECOGER: // pedimos al usuario el id de la compra, la sala y la sesion // estos datos quedan almacenados en el objeto ventanilla ventanilla.pedirDatosRecogida(); string entradas = cine.recogerEntradas(ventanilla.getId(), ventanilla.getSala(), ventanilla.getSesion()); // comprobamos si existe el id de compra dado en la sala y // la sesion dadas if (entradas == null) { Console.WriteLine("Los datos de la venta son incorrectos"); } else { Console.WriteLine("Tus entradas son: " + entradas); } break; case CONSULTAR_SESION: // pedimos al usuario la sala y la sesion // estos datos quedan almacenados en el objeto ventanilla ventanilla.pedirDatosConsultaSesion(); char[,] estadoSesion = cine.getEstadoSesion( ventanilla.getSala(), ventanilla.getSesion()); ventanilla.mostrarEstadoSesion(estadoSesion); break; case COMPRAR_RECOMENDACION: // pedimos al usuario el no. de butacas contiguas, la sala y la sesion // estos datos quedan almacenados en el objeto ventanilla ventanilla.pedirDatosRecomendacion(); ButacasContiguas butacas = cine.recomendarButacasContiguas( ventanilla.getNoButacas(), ventanilla.getSala(), ventanilla.getSesion()); // comprobamos si existen suficientes butacas contiguas // en la sala y sesion dadas if (butacas != null) { ventanilla.pedirConfirmacionCompraRecomendacion(butacas); // pedimos al usuario que confirme si quiere las butacas recomendadas // la respuesta queda guardada en el objeto ventanilla if (ventanilla.getRespuesta() == 's' || ventanilla.getRespuesta() == 'S') { cine.comprarEntradasRecomendadas(ventanilla.getSala(), ventanilla.getSesion(), butacas); Console.WriteLine("El id de la venta es " + cine.getIdEntrada(ventanilla.getSala(), ventanilla.getSesion(), butacas.getFila(), butacas.getColumna())); } else { Console.WriteLine("Has descartado la recomendación"); } } else { Console.WriteLine("No hay tantas butacas disponibles contiguas"); } break; case SALIR: seguir = false; break; } } while (seguir); }