public string Enviar_a_Ensamblaje(Almacenamiento almacenamiento)
        {
            if ((almacenamiento.Hora >= 8) && (almacenamiento.Hora <= 18))
            {
                if (almacenamiento.Interruptor == "OFF")
                {
                    almacenamiento.Encendido_Maquina(almacenamiento.Nombre);
                }
            }
            else
            {
                if (almacenamiento.Interruptor == "ON")
                {
                    almacenamiento.Apagado_Maquina(almacenamiento.Nombre, almacenamiento.Hora);
                }
                Console.WriteLine("Horario NO Laboral, Maquina " + almacenamiento.Nombre + " esta apagada, las piezas no han podido ser Almacenadas por esta Maquina");
            }

            if (almacenamiento.Interruptor == "ON")
            {
                Random rnd = new Random();

                if (almacenamiento.Memoria + Piezas_Recibidas <= 100)
                {
                    almacenamiento.Piezas_Almacenadas += almacenamiento.Piezas_Recibidas;
                    almacenamiento.Piezas_Ensamblaje   = almacenamiento.Piezas_Almacenadas;
                    almacenamiento.Piezas_Almacenadas -= almacenamiento.Piezas_Ensamblaje;
                    almacenamiento.Memoria            += almacenamiento.Piezas_Ensamblaje;
                    if (almacenamiento.Memoria == 100)
                    {
                        Console.WriteLine("La Maquina " + almacenamiento.Nombre + "No dispone de mas Memoria");
                        almacenamiento.Reinicio_Maquina(almacenamiento.Nombre);
                    }
                    //Console.WriteLine("");
                    Console.WriteLine("Se han almacenado " + almacenamiento.Piezas_Ensamblaje + " Piezas");
                    //Console.WriteLine("");
                    Console.WriteLine("Piezas enviadas a Ensamblaje");
                    return(" ");
                }
                else
                {
                    Console.WriteLine("La Maquina " + almacenamiento.Nombre + "No dispone de mas Memoria");
                    almacenamiento.Reinicio_Maquina(almacenamiento.Nombre);
                    almacenamiento.Piezas_Almacenadas += almacenamiento.Piezas_Recibidas;
                    almacenamiento.Piezas_Ensamblaje   = rnd.Next(0, almacenamiento.Piezas_Almacenadas);
                    almacenamiento.Piezas_Almacenadas -= almacenamiento.Piezas_Ensamblaje;
                    almacenamiento.Memoria            += almacenamiento.Piezas_Ensamblaje;
                    //Console.WriteLine("");
                    Console.WriteLine("Se han almacenado " + almacenamiento.Piezas_Ensamblaje + " Piezas");
                    //Console.WriteLine("");
                    Console.WriteLine("Piezas enviadas a Ensamblaje");
                    return(" ");
                }
            }
            else
            {
                Console.WriteLine("Maquina " + almacenamiento.Nombre + " esta Apagada, ha sido imposible enviar las piezas a Ensamblar");
                return(" ");
            }
        }
        public void Almacenar_Piezas(Almacenamiento almacenamiento)
        {
            if ((almacenamiento.Hora >= 8) && (almacenamiento.Hora <= 18))
            {
                Console.WriteLine("Piezas listas para empezar almacenamiento");
            }
            else
            {
                if (almacenamiento.Interruptor == "ON")
                {
                    almacenamiento.Apagado_Maquina(almacenamiento.Nombre, almacenamiento.Hora);
                }

                Console.WriteLine("Horario NO Laboral, Maquina " + almacenamiento.Nombre + " esta apagada, las piezas no han podido ser recepcionadas por esta Maquina");
            }
        }
        static void Main(string[] args)
        {
            Recepcion      recepciones     = new Recepcion();
            Almacenamiento almacenamientos = new Almacenamiento();
            Ensamblaje     ensamblajes     = new Ensamblaje();
            Verificacion   verificaciones  = new Verificacion();
            Empaque        empaques        = new Empaque();

            recepciones.Nombre     = " de Recepcion ";
            almacenamientos.Nombre = " de Almacenamiento ";
            ensamblajes.Nombre     = " de Ensamblaje ";
            verificaciones.Nombre  = " de Verificacion ";
            empaques.Nombre        = " de Empaque ";
            Random rnd     = new Random();
            bool   Running = true;



            while (Running == true)
            {
                Console.WriteLine("Bienvenido!");
                Console.WriteLine("");
                Console.WriteLine("Esta es la Interfaz del Computador Central");
                Console.WriteLine("");
                Console.WriteLine("Como te gustaria operar? ");
                Console.WriteLine("Pulsa / 1 para control manual / 2 para control automatico / 3 para apagar");
                Console.WriteLine("");
                string Opcion_Inicial = Console.ReadLine();

                if (Opcion_Inicial == "1")
                {
                    recepciones.Automatico     = false;
                    almacenamientos.Automatico = false;
                    ensamblajes.Automatico     = false;
                    verificaciones.Automatico  = false;
                    empaques.Automatico        = false;
                }

                else if (Opcion_Inicial == "2")
                {
                    recepciones.Automatico     = true;
                    almacenamientos.Automatico = true;
                    ensamblajes.Automatico     = true;
                    verificaciones.Automatico  = true;
                    empaques.Automatico        = true;
                }

                else if (Opcion_Inicial == "3")
                {
                    break;
                }
                else
                {
                    Console.WriteLine("Opcion Invalida!");
                    Console.WriteLine("");
                    Console.WriteLine("Redirigiendo...");
                }

                //Conteo Horas dia

                for (int Contador_Hora = 0; Contador_Hora < 24; Contador_Hora++)
                {
                    recepciones.Hora     = Contador_Hora;
                    almacenamientos.Hora = Contador_Hora;
                    ensamblajes.Hora     = Contador_Hora;
                    verificaciones.Hora  = Contador_Hora;
                    empaques.Hora        = Contador_Hora;

                    Console.WriteLine("Hora --> [" + Contador_Hora + ":00]");
                    Console.WriteLine("");
                    Console.WriteLine("");
                    //llamado a metodos de Maquinas por cada hora del dia

                    if ((Contador_Hora <= 8) || (Contador_Hora >= 18))
                    {
                        recepciones.Interruptor     = "OFF";
                        almacenamientos.Interruptor = "OFF";
                        ensamblajes.Interruptor     = "OFF";
                        verificaciones.Interruptor  = "OFF";
                        empaques.Interruptor        = "OFF";
                        if (Contador_Hora == 19)
                        {
                            Console.WriteLine("###############################################");
                            Console.WriteLine("#                                             #");
                            Console.WriteLine("#           FIN HORARIO LABORAL               #");
                            Console.WriteLine("#                                             #");
                            Console.WriteLine("###############################################");
                            Console.WriteLine("");
                            recepciones.Apagado_Maquina(recepciones.Nombre, recepciones.Hora);
                            almacenamientos.Apagado_Maquina(almacenamientos.Nombre, almacenamientos.Hora);
                            ensamblajes.Apagado_Maquina(ensamblajes.Nombre, ensamblajes.Hora);
                            verificaciones.Apagado_Maquina(verificaciones.Nombre, verificaciones.Hora);
                            empaques.Apagado_Maquina(empaques.Nombre, empaques.Hora);
                            Console.WriteLine("");
                            Console.WriteLine("###############################################");
                            Console.WriteLine("");
                            Console.WriteLine("");
                            Console.WriteLine("");
                        }
                    }
                    if (Contador_Hora >= 8)
                    {
                        if (Contador_Hora <= 18)
                        {
                            recepciones.Interruptor     = "ON";
                            almacenamientos.Interruptor = "ON";
                            ensamblajes.Interruptor     = "ON";
                            verificaciones.Interruptor  = "ON";
                            empaques.Interruptor        = "ON";
                            if (Contador_Hora == 8)
                            {
                                Console.WriteLine("###############################################");
                                Console.WriteLine("#                                             #");
                                Console.WriteLine("#           INICIO HORARIO LABORAL            #");
                                Console.WriteLine("#                                             #");
                                Console.WriteLine("###############################################");
                                Console.WriteLine("");
                                recepciones.Encendido_Maquina(recepciones.Nombre);
                                almacenamientos.Encendido_Maquina(almacenamientos.Nombre);
                                ensamblajes.Encendido_Maquina(ensamblajes.Nombre);
                                verificaciones.Encendido_Maquina(verificaciones.Nombre);
                                empaques.Encendido_Maquina(empaques.Nombre);
                                Console.WriteLine("");
                            }
                        }
                    }

                    recepciones.Piezas_Recibidas = rnd.Next(0, 200);
                    recepciones.Recibir_Piezas(recepciones);
                    recepciones.Enviar_a_Almacenamiento(recepciones);
                    Console.WriteLine("");
                    almacenamientos.Piezas_Recibidas = recepciones.Piezas_Almacenamiento;
                    almacenamientos.Almacenar_Piezas(almacenamientos);
                    almacenamientos.Enviar_a_Ensamblaje(almacenamientos);
                    Console.WriteLine("");
                    ensamblajes.Piezas_Recibidas = almacenamientos.Piezas_Ensamblaje;
                    ensamblajes.Verificar_Piezas(ensamblajes);
                    ensamblajes.Ensamblar_Piezas(ensamblajes);
                    Console.WriteLine("");
                    verificaciones.Piezas_Recibidas = ensamblajes.Piezas_Verificacion;
                    verificaciones.Verificar_Pieza(verificaciones);
                    verificaciones.Enviar_a_Empaque(verificaciones);
                    Console.WriteLine("");
                    empaques.Piezas_Empaquetadas = verificaciones.Piezas_Empaque;
                    empaques.Empaquetar_Pieza(empaques);
                    empaques.Enviar_Empaque(empaques);
                    Console.WriteLine("");
                    Console.WriteLine("");
                    Console.WriteLine("");
                }
            }
        }