/// <summary> /// Convierte los datos básicos del movimiento /// </summary> private void ConvertMovementBase(BaseMovementModel movementPgn, MovementBaseModel movement) { // Asigna los comentarios foreach (string comment in movementPgn.Comments) { movement.Comments.Add(comment); } // Asigna la información foreach (InfoMovementModel info in movementPgn.Info) { movement.Info.Add(new MovementInfoModel(info.Content)); } }
/// <summary> /// Obtiene el movimiento anterior /// </summary> private MovementFigureModel GetPreviousMovement() { // Busca el siguiente movimiento de tipo figura (se salta los comentarios si había alguno) while (--ActualMovementIndex > -1) { MovementBaseModel movement = ActualVariationGame.Movements[ActualMovementIndex]; if (movement is MovementFigureModel movementFigure) { return(movementFigure); } } // No ha encontrado ningún movimiento anterior return(null); }
/// <summary> /// Escribe los datos de un movimiento /// </summary> private void WriteMovement(int indent, MovementBaseModel baseMovement) { // Cabecera Console.Write(new string('\t', indent)); // Número de movimiento Console.Write($"{baseMovement.Turn.Number} - {baseMovement.Turn.Type.ToString()} "); // Datos del movimiento switch (baseMovement) { case MovementGameEndModel result: Console.Write(result.Result.ToString()); break; case MovementFigureModel movement: Console.Write(movement.ToString()); break; } // Información if (baseMovement.Info.Count > 0) { foreach (MovementInfoModel info in baseMovement.Info) { Console.Write($" --> Info {baseMovement.Info.IndexOf(info).ToString()} - [{info.Content}]"); } } // Comentarios if (baseMovement.Comments.Count > 0) { foreach (string comment in baseMovement.Comments) { Console.Write($" --> Comment {baseMovement.Comments.IndexOf(comment).ToString()} - [{comment}]"); } } else { Console.Write(" No comments"); } // Salto de línea Console.WriteLine(); }
/// <summary> /// Convierte una variación /// </summary> private MovementVariationModel ConvertVariation(VariationModel variation, MovementBaseModel parent) { MovementVariationModel movementVariation = new MovementVariationModel(parent); SquareModel board = Board.Clone(); // Ajusta el movimiento al color de inicio de la variación board.Parameters.IsWhiteMove = variation.Movements[0].Turn.Type == TurnModel.TurnType.White; // Presenta el tablero //#if DEBUG // System.Diagnostics.Debug.WriteLine("Board for variation:"); // System.Diagnostics.Debug.WriteLine(board.GetText()); // System.Diagnostics.Debug.WriteLine(new string('-', 80)); //#endif // Convierte los movimientos movementVariation.Movements.AddRange(new MovementConversor(board).Convert(variation.Movements)); // Presenta el tablero real //#if DEBUG // System.Diagnostics.Debug.WriteLine("Board after variation:"); // System.Diagnostics.Debug.WriteLine(Board.GetText()); // System.Diagnostics.Debug.WriteLine(new string('-', 80)); //#endif // Devuelve la variación return(movementVariation); }