internal class Program { private const string QUIT = "q"; public static void Main(string[] args) { Console.WriteLine("Sientase bienvenido al edificio Josmer"); Elevator ascensor = new Elevator(); string input = string.Empty; while (input != QUIT) { Console.WriteLine("Por favor, presione al piso que usted desea ir"); input = Console.ReadLine(); if (int.TryParse(input, out int piso)) ascensor.FloorPress(piso); else if (input == QUIT) Console.WriteLine("Adiocito!"); else Console.WriteLine("Ese piso no existe, presione nuevamente!"); } } } public class Elevator { private const int pisofinal = 12; private int _actual = 1; public void FloorPress(int piso) { if (piso < 1 || piso > 12) Console.WriteLine("Solo 1 al 12 o q para salir"); return; if (piso - _actual < 0 && _actual > 1) bajar(piso); else if (piso - _actual > 0 && _actual < pisofinal) subir(piso); else Stop(piso); } private void subir(int piso) { for (int i = _actual; i <= piso; i++) { Console.WriteLine($"Subiendo...{i}"); Thread.Sleep(500); } Stop(piso); } private void bajar(int piso) { for (int i = _actual; i >= piso; i--) { Console.WriteLine($"Bajando...{i}"); Thread.Sleep(500); } Stop(piso); } private void Stop(int piso) { _actual = piso; Console.WriteLine("Estamos en el piso {0}", piso); } }