/// <summary>
 /// 相三进五型
 /// </summary>
 /// <returns></returns>
 public static String to_audio_name
 (
     ChessColour player,
     PieceType piece,
     VerticalLine start,
     MoveDirection direction,
     VerticalLine end
 )
 {
     if (player == ChessColour.NONE || piece == PieceType.NONE)
     {
         throw new ArgumentOutOfRangeException("越界!");
     }
     return(($"{player.ToString()[0]}{(char)piece}{start.value}" +
             $"{direction.to_audio_string()}{end.value}").ToLower());
 }
 /// <summary>
 /// 前炮进一型或炮五进一型
 /// </summary>
 /// <returns></returns>
 public static String to_audio_name
 (
     PieceIdentifier id,
     ChessColour player,
     PieceType piece,
     VerticalLine start,
     MoveDirection direction,
     CoordinateDelta delta
 )
 {
     if (id == PieceIdentifier.NONE)
     {
         return(to_audio_name(
                    player, piece, start, direction, delta));
     }
     if (player == ChessColour.NONE || piece == PieceType.NONE)
     {
         throw new ArgumentOutOfRangeException("越界!");
     }
     return(($"{id.to_audio_string()}{player.ToString()[0]}{(char)piece}" +
             $"{direction.to_audio_string()}{Math.Abs(delta.y)}").ToLower());
 }