using ElevatorDiag; using Spectre.Console; namespace ElevatorDiag; class Program { static void Main(string[] args) { var elevator = new Elevator(); var diag = new ElevatorDiagnostics(elevator); AnsiConsole.MarkupLine("[bold blue]Elevator Simulation Starting...[/]"); elevator.RequestFloor(3); elevator.RequestFloor(5); for (int i = 0; i < 15; i++) { elevator.Update(); var report = diag.GetStatusReport(); AnsiConsole.MarkupLine($"[grey]Tick {i:D2}:[/] {report.Replace("[Elevator Report]", "").Trim()}"); if (i == 10) { AnsiConsole.MarkupLine("[bold red]! Simulating Fault ![/]"); elevator.TriggerFault("Door Obstruction"); } if (i == 13) { AnsiConsole.MarkupLine("[bold green]! Clearing Fault ![/]"); elevator.ResetFault(); } Thread.Sleep(100); } AnsiConsole.MarkupLine("[bold blue]Simulation Finished.[/]"); } }