// Muestra la solución obtenida paso a paso y con una animación private void ShowSolution(List <Operator> operators, Metrics metrics) { // el resultado lo tenemos que mostrar de manera animada, haciendo acción tras acción foreach (Operator op in operators) { Position position = solver.GetOperatedPosition(puzzle, op); board.Move(board.GetBlock(position), BlockBoard.AI_DELAY); Debug.Log("Applying " + op.ToString() + " operator"); } steps = Convert.ToUInt32(operators.Count); UpdateInfo(); // Mostrar tanto el resultado como las métricas... lo mismo incluso paso a paso y en otro color, para diferenciar cómo quedan al terminar :-) //...las métricas pintarlas pintar por la pantalla o en fichero Debug.Log("Métrics: " + metrics.ToString()); // hacer bucle para mostrarlas todas }
// Muestra la solución obtenida paso a paso y con una pequeña animación o pausa private void ShowSolution(List <Operator> operators) { if (operators.Count == 1 && operators[0].isNoOperator()) { steps = 0; } else { foreach (Operator op in operators) // Pausar tras cada movimiento realizado { Position position = solver.GetOperatedPosition(puzzle, op); board.Move(board.GetBlock(position), BlockBoard.AI_DELAY); Debug.Log("Applying " + op.ToString() + " operator"); } steps = Convert.ToUInt32(operators.Count); } metricsString.text = metrics.ToString(); UpdateHUD(); // Mostrar tanto el resultado como las métricas... se podría mostrar paso a paso y en otro color, para diferenciar cómo queda todo al terminar }