Jack o lantern generator by smkt (uncompressed)

#include <stdlib.h>\x0d
char stem='\\';\x0d
char longstem=0;\x0d
char lefteye='O';\x0d
char righteye='O';\x0d
char nose='^';\x0d
char mouth[4]="\\/\\";\x0d
char jw[99],prm[99],p2[99],v;\x0d
delem_grab(char *c, int d1, int d2){\x0d
int w = 0,x;\x0d
v=0;\x0d
while(1){x=getchar(); if(x==-1){exit(0);} c[w++] = x; if(x==d1){v=1;break;} if(x==d2){break;}}\x0d
c[w-1] = 0;\x0d
}\x0d
int main(){\x0d
int i,adj;\x0d
while(1){\x0d
adj=v=i=0;\x0d
while(1){\x0d
delem_grab(jw,':','!');\x0d
if(strcmp(jw,"go")==0){break;}\x0d
getchar();\x0d
delem_grab(prm,',','\n');\x0d
if(v==1){\x0d
delem_grab(p2,'\n',-1);\x0d
i=1;\x0d
}\x0d
if(strcmp(jw, "eye")==0){\x0d
\x09adj=0;\x0d
\x09if(i){\x0d
\x09\x09if(strcmp(p2, "right")==0){\x0d
\x09\x09adj=2;\x0d
\x09}\x0d
\x09if(strcmp(p2, "left")==0){\x0d
\x09\x09adj=1;\x0d
\x09}\x0d
\x09}\x0d
}\x0d
if(strcmp(jw, "nose")==0){\x0d
\x09adj = 3;\x0d
}\x0d
if(strcmp(jw, "mouth")==0){\x0d
\x09adj = 4;\x0d
}\x0d
if(strcmp(jw, "stem")==0){\x0d
\x09if(strcmp(prm,"straight")==0){stem='|';}\x0d
\x09if(strcmp(prm,"tilted")==0){stem='\\';}\x0d
\x09if(strcmp(prm,"curved")==0){stem=')';}\x0d
\x09if(strcmp(prm,"long")==0){longstem=1;}\x0d
\x09if(strcmp(prm,"short")==0){longstem=0;}\x0d
\x09if(strcmp(prm,"none")==0){stem=' ';}\x0d
\x09if(i){\x0d
\x09if(strcmp(p2,"straight")==0){stem='|';}\x0d
\x09if(strcmp(p2,"tilted")==0){stem='\\';}\x0d
\x09if(strcmp(p2,"curved")==0){stem=')';}\x09\x0d
\x09if(strcmp(p2,"long")==0){longstem=1;}\x0d
\x09if(strcmp(p2,"short")==0){longstem=0;}\x0d
\x09if(strcmp(p2,"none")==0){stem=' ';}\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "flat")==0){\x0d
\x09switch(adj){\x0d
\x09case 0: lefteye=righteye='-';break;\x0d
\x09case 1: lefteye='-'; break;\x0d
\x09case 2: righteye='-';break;\x0d
\x09case 3: nose='-'; break;\x0d
\x09case 4: strcpy(mouth, "---");\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "triangle")==0){\x0d
\x09switch(adj){\x0d
\x09case 0: lefteye=righteye='^';break;\x0d
\x09case 1: lefteye='^'; break;\x0d
\x09case 2: righteye='^'; break;\x0d
\x09case 3: nose='^'; break;\x0d
\x09case 4: strcpy(mouth, " ^ ");\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "inverted-triangle")==0){\x0d
\x09switch(adj){\x0d
\x09\x09case 0: lefteye=righteye='V';break;\x0d
\x09\x09case 1: lefteye='V'; break;\x0d
\x09\x09case 2: righteye='V'; break;\x0d
\x09\x09case 3: nose='V'; break;\x0d
\x09\x09case 4: strcpy(mouth, " V ");\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "circle")==0){\x0d
\x09switch(adj){\x0d
\x09\x09case 0: lefteye=righteye='O';break;\x0d
\x09\x09case 1: lefteye='O'; break;\x0d
\x09\x09case 2: righteye='O'; break;\x0d
\x09\x09case 3: nose='O'; break;\x0d
\x09\x09case 4: strcpy(mouth, " O ");\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "wavy")==0){\x0d
\x09switch(adj){\x0d
\x09\x09case 0: lefteye=righteye='~';break;\x0d
\x09\x09case 1: lefteye='~'; break;\x0d
\x09\x09case 2: righteye='~'; break;\x0d
\x09\x09case 3: nose='~'; break;\x0d
\x09\x09case 4: strcpy(mouth, "\\/\\");\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "tiny")==0){\x0d
\x09switch(adj){\x0d
\x09\x09case 0: lefteye=righteye='.';break;\x0d
\x09\x09case 1: lefteye='.'; break;\x0d
\x09\x09case 2: righteye='.'; break;\x0d
\x09\x09case 3: nose='.'; break;\x0d
\x09\x09case 4: strcpy(mouth, " . ");\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "narrow")==0){\x0d
\x09switch(adj){\x0d
\x09\x09case 0: lefteye=righteye='|';break;\x0d
\x09\x09case 1: lefteye='|'; break;\x0d
\x09\x09case 2: righteye='|'; break;\x0d
\x09\x09case 3: nose='!'; break;\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "star")==0){\x0d
\x09switch(adj){\x0d
\x09\x09case 0: lefteye=righteye='*';break;\x0d
\x09\x09case 1: lefteye='*'; break;\x0d
\x09\x09case 2: righteye='*'; break;\x0d
\x09\x09case 3: nose='*'; break;\x0d
\x09\x09case 4: strcpy(mouth, " * ");\x0d
\x09}\x0d
}\x0d
if(strcmp(prm, "x")==0){\x0d
\x09switch(adj){\x0d
\x09\x09case 0: lefteye=righteye='x';break;\x0d
\x09\x09case 1: lefteye='x'; break;\x0d
\x09\x09case 2: righteye='x'; break;\x0d
\x09\x09case 3: nose='x'; break;\x0d
\x09\x09case 4: strcpy(mouth, " X ");\x0d
\x09}\x0d
}\x0d
}\x0d
if(longstem){\x0d
if(stem == '|'){\x0d
printf("   |\n");\x0d
}\x0d
if(stem == '\\'){\x0d
printf("  \\\n");\x0d
}\x0d
if(stem == ')'){\x0d
printf("   (\n");\x0d
}\x0d
} else puts("");\x0d
printf(" __%c__\n/ %c %c \\\n|  %c  |\n\\ %s /\n-------\n", stem, lefteye, righteye, nose, mouth);\x0d
}\x0d
}

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return to the top page