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