¿Cómo incluir gráficos del enésimo elemento en una lista de archivos?

¿Cómo incluir gráficos del enésimo elemento en una lista de archivos?

Estoy escribiendo un documento para generar una baraja de cartas. Los valores de las tarjetas se almacenan en una lista general. Cada color/palo de carta tiene su propio conjunto de archivos gráficos, también definidos en listas generales. Es decir, los valores y los nombres de los archivos son arbitrarios, pero para fines de depuración, los nombres de los archivos se sistematizan en el código siguiente.

La idea es ejecutar un índice en un bucle for y generar tanto el valor como el nombre del archivo gráfico para cada tarjeta en el bucle. El índice en ejecución puede ir más allá de la longitud de cualquiera de las listas para generar más tarjetas, de ahí el uso de la función MyModulo.

Al usar la función/macro GetListMember para generar resultados de texto, produce los nombres de los archivos correctamente.

Cuando se utiliza la función/macro GetListMember junto con includegraphis para los nombres de archivos, la compilación falla:
! \iffalse incompleto; todo el texto fue ignorado después de la línea 64.
texto insertado
\fi

y no puedo entender por qué.

Realmente me gustaría tener una solución generalizada, donde los nombres de los archivos puedan ser arbitrarios. (La longitud de las diferentes listas son números primos, por lo que una solución con grupos irregulares probablemente no sea la más efectiva).

\documentclass{article}
\usepackage{ifthen}
\usepackage{pgffor}
\usepackage{graphicx}
\usepackage{intcalc}
\usepackage{xstring}

\graphicspath{{../images/}}

% Define card values and graphics
\newcommand{\MyValues}{10,Kn,D,K,E}% Values of the cards
\newcommand{\MyValuesN}{5}

\newcommand{\MyCard}{temp1,temp2,temp3}% Card images in one color
\newcommand{\MyCardN}{3}

\newcommand{\MyCardA}{tempA,tempB,tempC}% Card images in second color
\newcommand{\MyCardAN}{3}

% Define wrap around index function.
\newcommand{\MyModulo}[2]{%
  \intcalcInc{\intcalcMod{\intcalcDec{#1}}{#2}}% 
}

% From http://tex.stackexchange.com/questions/21559/macro-to-access-a-specific-member-of-a-list
% This works both with inline lists and with macros containing lists
\newcommand*{\GetListMember}[2]{%
    \edef\dotheloop{%
    \noexpand\foreach \noexpand\a [count=\noexpand\i] in {#1} {%
      \noexpand\IfEq{\noexpand\i}{#2}{\noexpand\a\noexpand\breakforeach}{}%
    }}%
\dotheloop%
}%

%Stand in function generating the cards, the real function is more elaborated.
\newcommand{\docard}[2]{%
  !#1! % Value
  \includegraphics[width=2cm]{#2} %graphics
}

\begin{document}

\foreach \n in {1,...,7} {%
  %
  %This works, shows the values.
  %\GetListMember{\MyValues}{\MyModulo{\n}{\MyValuesN}}               
  %
  %This works, produces the correct image file names.
  %\GetListMember{\MyCard}{\MyModulo{\n}{\MyCardN}}.png               
  %
  %This works, includes the images. 
  %\includegraphics[width=2cm]{temp\MyModulo{\n}{\MyCardN}.png}       
  %
  %This does not work.
  %\includegraphics[width=2cm]{\GetListMember{\MyCard}{\MyModulo{\n}{\MyCardN}}.png}    
  %
  %This works, calls the card macro correctly. 
  %\docard{\GetListMember{\MyValues}{\MyModulo{\n}{\MyValuesN}}}{temp\MyModulo{\n}{\MyCardN}.png} 
  %
  %This does not work.
  \docard{\GetListMember{\MyValues}{\MyModulo{\n}{\MyValuesN}}}
         {\GetListMember{\MyCard}{\MyModulo{\n}{\MyCardN}}.png}
  \par  
}

% Second color of cards
%\foreach \n in {1,...,7} {
%  \docard{\GetListMember{\MyValues}{\MyModulo{\n}{\MyValuesN}}}
%         {\GetListMember{\MyCardA}{\MyModulo{\n}{\MyCardNA}}.png}
%  \par  
%}

% Third colors of cards
%\foreach ...

\end{document}

información relacionada