hangman.c 610 B

123456789101112131415161718192021222324
  1. #include <stdio.h>
  2. int main(){
  3. char s[]=".bg`z`lE)gc`}{hD-|\\/OI:retteL>\n\n",k;
  4. long w=32,r,_,y
  5. ,i,b,g,p[]={63l<<16,37968,15,32,896,2048,24576,37449,2,12546,3074,19138
  6. ,3586,585,0},t;
  7. b=g=r=0;
  8. while((b<7)&&(g<65278))
  9. {
  10. for(_=16;_+10;)
  11. putchar(_
  12. -->0?_&7?g>>_&1?s[_]^9:46:w:s[_+w]);
  13. while((k=getchar())<65);
  14. for(_=15,t=
  15. g;_;)
  16. if((s[_--]^9|w)==(k|w))g|=2<<_;
  17. if(t==g)r|=p[b++];
  18. for(y=9,t=0;y--;)
  19. for(_=9;_;)
  20. putchar(--_?(i=p[y+6]>>24-3*_&7)?r>>t++&1?s[i+15]:w:w:10);
  21. }
  22. return 0;
  23. }