static void Main(string[] args)
        {
            // Creo Comp. Central.
            ComputadorCentral cc = new ComputadorCentral();

            //Creo una maquina de cada tipo.

            Recepcion  r1 = new Recepcion(); Almacenamiento a1 = new Almacenamiento();
            Ensamblaje e1 = new Ensamblaje(); Verificacion v1 = new Verificacion();
            Empaque    emp1 = new Empaque();

            //Creo algunas piezas.

            Pieza p1 = new Pieza(); Pieza p2 = new Pieza();
            Pieza p3 = new Pieza(); Pieza p4 = new Pieza();

            //Vamos a simular un dia de operacion:

            //Primero parto dando la orden al comp. central de que encienda
            //todas las maquinas en el orden correspondiente.

            cc.encenderMaquina(r1); cc.encenderMaquina(a1); cc.encenderMaquina(e1);
            cc.encenderMaquina(v1); cc.encenderMaquina(emp1);

            //Procesamos la primera pieza.
            //Despues de realizar cada accion, ordeno a comp. central que
            //checkee memoria de cada maquina y la resetee si corresponde.
            r1.recibir(p1); cc.checkMemoriaMaquina(r1);
            a1.almacenar(p1); cc.checkMemoriaMaquina(a1);
            e1.ensamblar(p1); cc.checkMemoriaMaquina(e1);
            v1.verificar(p1); cc.checkMemoriaMaquina(v1);
            emp1.empacar(p1); cc.checkMemoriaMaquina(emp1);

            //La segunda.
            r1.recibir(p2); cc.checkMemoriaMaquina(r1);
            a1.almacenar(p2); cc.checkMemoriaMaquina(a1);
            e1.ensamblar(p2); cc.checkMemoriaMaquina(e1);
            v1.verificar(p2); cc.checkMemoriaMaquina(v1);
            emp1.empacar(p2); cc.checkMemoriaMaquina(emp1);

            //.. la tercera.
            //Notemos que aca voy a exceder mi limite de memoria (cada maquina aguanta maximo 2 ops
            //y por ende se va a resetear x orden del computador central).

            r1.recibir(p3); cc.checkMemoriaMaquina(r1);
            a1.almacenar(p3); cc.checkMemoriaMaquina(a1);
            e1.ensamblar(p3); cc.checkMemoriaMaquina(e1);
            v1.verificar(p3); cc.checkMemoriaMaquina(v1);
            emp1.empacar(p3); cc.checkMemoriaMaquina(emp1);

            //.. la cuarta.

            r1.recibir(p4); cc.checkMemoriaMaquina(r1);
            a1.almacenar(p4); cc.checkMemoriaMaquina(a1);
            e1.ensamblar(p4); cc.checkMemoriaMaquina(e1);
            v1.verificar(p4); cc.checkMemoriaMaquina(v1);
            emp1.empacar(p4); cc.checkMemoriaMaquina(emp1);

            //Concluido el dia, apagamos las maquinas en el orden que corresponde.

            cc.apagarMaquina(r1); cc.apagarMaquina(a1); cc.apagarMaquina(e1);
            cc.apagarMaquina(v1); cc.apagarMaquina(emp1);
        }
        public static void Main(string[] args)
        {
            int     hora       = 8;
            int     min        = 0;
            Maquina maquinaRe  = new Recepcion("Recepcion", 6, 1);
            Maquina maquinaAl  = new Almacenamiento("Almacenamiento", 24, 4);
            Maquina maquinaEns = new Ensamblaje("Ensamblaje", 10, 2);
            Maquina maquinaVer = new Verificacion("Verificacion", 10, 1);
            Maquina maquinaEmp = new Empaque("Empaque", 7, 1);

            Console.WriteLine(hora + ":0" + min + ":00 - Abrimos!");
            Console.WriteLine("\n");
            Console.WriteLine("Desea Trabajar Manualmente las maquinas?");
            Console.WriteLine("1.- Si");
            Console.WriteLine("2.- No");
            int metodo = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("\n");

            maquinaRe.Encendido();
            maquinaAl.Encendido();
            maquinaEns.Encendido();
            maquinaVer.Encendido();
            maquinaEmp.Encendido();
            Console.WriteLine("\n");
            Console.WriteLine("\n");

            if (metodo == 1 || metodo == 2)
            {
                if (metodo == 1)
                {
                    Console.WriteLine("Ha seleccionado el Metodo Manual");
                    Console.WriteLine("\n");
                    while (hora != 17)
                    {
                        if (min == 60)
                        {
                            min = 0;
                            hora++;
                            Console.WriteLine(hora + ":0" + min + ":00");
                            min += 10;
                        }
                        else
                        {
                            Console.WriteLine(hora + ":" + min + ":00");
                            min += 10;
                        }

                        //Maquina Recepcion
                        maquinaRe.UsoMemoria();
                        if (maquinaRe.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.ReinicioManual("Recepcion", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp);
                        }

                        //Maquina Almacenamiento
                        maquinaAl.UsoMemoria();
                        if (maquinaAl.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.ReinicioManual("Almacenamiento", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp);
                        }

                        //Maquina Ensamblaje
                        maquinaEns.UsoMemoria();
                        if (maquinaEns.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.ReinicioManual("Ensamblaje", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp);
                        }

                        //Maquina Verificacion
                        maquinaVer.UsoMemoria();
                        if (maquinaVer.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.ReinicioManual("Verificacion", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp);
                        }

                        //Maquina Empaque
                        maquinaEmp.UsoMemoria();
                        if (maquinaEmp.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.ReinicioManual("Empaque", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp);
                        }
                    }
                    Console.WriteLine("\n");
                    Console.WriteLine("\n");
                    Console.WriteLine("Son las 17:00 ... Hora de apagar las Maquinas");
                    Console.WriteLine("\n");
                    maquinaRe.Apagado();
                    maquinaAl.Apagado();
                    maquinaEns.Apagado();
                    maquinaVer.Apagado();
                    maquinaEmp.Apagado();
                    Console.WriteLine("\n");
                    Console.WriteLine("Todas las maquinas apagadas ... Hasta mañana!");
                }
                else if (metodo == 2)
                {
                    Console.WriteLine("Ha seleccionado el Metodo Automatico");
                    Console.WriteLine("\n");
                    while (hora != 17)
                    {
                        if (min == 60)
                        {
                            min = 0;
                            hora++;
                            Console.WriteLine(hora + ":0" + min + ":00");
                            min += 10;
                        }
                        else
                        {
                            Console.WriteLine(hora + ":" + min + ":00");
                            min += 10;
                        }

                        //Maquina Recepcion
                        maquinaRe.UsoMemoria();
                        if (maquinaRe.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.Reinicio(maquinaRe);
                        }

                        //Maquina Almacenamiento
                        maquinaAl.UsoMemoria();
                        if (maquinaAl.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.Reinicio(maquinaAl);
                        }

                        //Maquina Ensamblaje
                        maquinaEns.UsoMemoria();
                        if (maquinaEns.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.Reinicio(maquinaEns);
                        }

                        //Maquina Verificacion
                        maquinaVer.UsoMemoria();
                        if (maquinaVer.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.Reinicio(maquinaVer);
                        }

                        //Maquina Empaque
                        maquinaEmp.UsoMemoria();
                        if (maquinaEmp.MemoriaMaximaAlcanzada() == 1)
                        {
                            ComputadorCentral.Reinicio(maquinaEmp);
                        }
                    }
                    Console.WriteLine("\n");
                    Console.WriteLine("\n");
                    Console.WriteLine("Son las 17:00 ... Hora de apagar las Maquinas");
                    Console.WriteLine("\n");
                    maquinaRe.Apagado();
                    maquinaAl.Apagado();
                    maquinaEns.Apagado();
                    maquinaVer.Apagado();
                    maquinaEmp.Apagado();
                    Console.WriteLine("\n");
                    Console.WriteLine("Todas las maquinas apagadas ... Hasta mañana!");
                }
            }
            else
            {
                Console.WriteLine("Metodo invalido.");
                maquinaRe.Apagado();
                maquinaAl.Apagado();
                maquinaEns.Apagado();
                maquinaVer.Apagado();
                maquinaEmp.Apagado();
            }
        }