Bienvenido a la web de la Oficina del Software Libre y Conocimiento Abierto de la Universidad de Cádiz

Mi curiosa felicitación de Navidad.

Instrucciones:

1. Cortar desde la línea de puntos no incluida hasta el final y salvar en un fichero acabado en .c, por ejemplo: xmas2010.c .

2. Compilar con un compilador de C (cc) y ejecutar.

3. Pasar xmas2010.c a tex o pdftex y ver el resultado con un visor de DVI o de PDF respectivamente.

Es la letra de una canción tradicional anglosajona de Navidad.

·····································8<······················

int qq=0;/*\def~#1~{}~{{=;{#*/
#define q(q) char w=0,v[]=q
q("@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+"
",/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eK"
"K#}w'r}eKK{nl]'/#;#q#n'>{>#}w'>{>{nl]'/+#n';d}rw' i;# >{nl]!/n{n#'; r{#w'"
"r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; "
":{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}"
"+;#'rdq#w! nr'/ '> }+}{rl#'{n' '># }'+}## #define dducfirstde ;static int f(int t,int _,char*a){return!0 #define lt -13,a+f(-87,1-_,f(-86,0,a+1)+a)):1,t<_?f(t+1,_,a):3,f(-94,-27+t,
#define s a)&&t==2?_<13?f(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?f(_,t,v):t<-50
#define ici ?_==*a?putchar(31[a]):f(-65,_,a+1):f((*a=='/')+t,_,a+1):0 #define length ,2,"%s"):*a=='/'||f(w,f(-61,*a,"!ek;dc i@bK'-[w]*%n+r3#l"
#define mysweetdiego ",{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}int main
#define cmp(s) (int t,char**_){struct w{int v;};if(sizeof(w)>1){v[111]='d';
#define cos(u) (2005)v[112]='n',v[113]=';',v[114]=':';}return!f(t,_?0:0,0);
dducfirstde lt s ici length mysweetdiego cmp(s ror study biconverge and s l
lleg and s fd fdo do reverse foo xor s go dog chr reverse ord srand hyperge
and s eselcfirstexesee)if cos(s e e q dISWcJyccBWXJKcjBTocVUFEYcCUJWcDooYLW
cWLoUccIEYVcTNTVLPyTcoPooQVXcLcRooVEYmTTTNTcLPREcocWoPYCcnQFKHCocEhcVMcooQt
ctUPcAWWKroCoBLcPcLcAlUToCbcWoTLVYNoREcLcToctYzoooTcoKocMcUTCKJoCDUUocVMURI
gMLSahOXDTcococaAQAoCKBcQoocozfkIITnPikugLocvccCoBGYiTTPcXcoimVuIDfavHlKHVX
cokTPUooKgUYVoXVVxSjIAPmKUNbuocoPcBcYXUcVPkcoTcocVbPHoQTUOGxufBooTcmBFoVKPY
loFcccXcoDmcvIOMMDOGmSBQovoTTBolPycPAoVVnKUIItTwBnYroocTTVccoKCcVoKlocrIrCf
SBzgCocDJQRcccoVVzcQCUBxpioOLMsYZYucYoTTjWCoVoYHPTcBbxjoriLxGkaQcccycccLTTl
UcNTBocoVUtuINkOxXCGOYvccJcCcUoobccLYroTcJtoooTtococzoEngovuncDNgooctcoOLXV
mVmZoTCETcYoARclVQBTVoQoLcYHVcmkjhFjOfoWTocPVmoocWoLoccJMLYWOLsMBvFiMZIHXNo
VochoRcTooJooCoLWuskMhhgIKPTooocZZocXTTYoqcoWWaKSqmCgZoPVmWcVcQokUTWotoNXWP
uGvIqPaowkBocXcoTToLToooVVIcoqAnzzhigoTVohVVoUUQoBAcpccPooMVoGToDYQqqppyIjp
NoVXScXUFovKoocUbLcVQTWNgbuHtioHsTocoRccoGcTXoocKTVocjgEpHDBloWcoEVVoHoocDc
goUoWTVVTcEYBPnKpaoIFVVVXAcHbcoTocoAVTNTToftfXPmiiOopuaoVXccooUjcoocUcJUkTN
cTFEXuVVmoUlWorTccoloGcTBoPooLcUlKoUcoXoYokocaAooTgPqTYLmcwJoVXocvmtJCjpcEo
TTOorccVococoMoocTErPcVocqYEcVQoYcccocoKvoooQKuYcoQoloECoWojooQoofocWRooJLc
coojOIQcWohrdemix)}int qw;/*;;q/}}}}}}}}}}~\newcount\C\output{\setbox0\hbox
{\box255}\def~{\hfil\break}\setbox0\vbox{\kern-18pt\special{papersize=8.5i%
n,11in}\parindent0pt{\bf The Twelve Sweet Days of Christmas}\medskip\loop%%
\ifnum\C<12On the \ifcase\C first\or second\or third\or fourth\or fifth\or%
sixth\or seventh\or eighth\or ninth\or tenth\or eleventh\or twelfth\fi\ day
of Christmas my sweet love gave to me~\ifnum\C>10twelve drummers drumming,%
\fi\ifnum\C>9eleven pipers piping, \fi\ifnum\C>8ten lords a-leaping,~\fi%%%
\ifnum\C>7nine ladies dancing, \fi\ifnum\C>6eight maids a-milking, \fi%%%%%
\ifnum\C>5seven swans a-swimming,~\fi\ifnum\C>4six geese a-laying, \fi%%%%%
\ifnum\C>3five gold rings;~\fi\ifnum\C>2four calling birds, \fi\ifnum\C>1t%
hree french hens, \fi\ifnum\C>0two turtle doves~and \fi a partridge in a p%
ear tree.\endgraf\smallskip\advance\C1\repeat}\shipout\box0}\end%%%%%%%%%*/

AdjuntoTamaño
xmas2010.tar.gz2.26 KB

Error

He seguido tus intrucciones, pero tengo un error al compilar (¿comilla que no se cierra?) en la línea 8. Y tal como está el código (hecho unos zorros ofuscados) como que no me apetece meterle mano :-) ¿En qué me he equivocado?

Copiopego:

-------------8<---------------------------
cucharro@luna:/tmp$ gcc xmas.c
xmas.c:8: warning: missing terminating " character
xmas.c:42: error: unterminated argument list invoking macro "q"
xmas.c:3: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ at end of input
------------->8---------------------------

Error de copy&paste

Tiene pinta de error de copy&paste al postearlo, porque el que ha mandado por correo funciona perfectamente. Mejor adjunto el fichero comprimido, que funciona sin problemas.

¡Gracias Gerardo por la felicitación!

Felices fiestas a todos.

PD: Compilándolo con pdftex queda más cuco :)

Sí, eso es.

Los #define deben ir al principio de una línea, y se ha colado uno por ahí en medio. Gracias, N., por poner el archivo comprimido.

Gracias

Gracias a G. a N. y a (tm), ya compilo, veo y admiro la bonita y friki felicitación navideña. Feliz Navidad.

PD: Claro, tm \equiv todo el mundo

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Distribuir contenido