Author: Dann Corbit
Date: 12:16:54 02/22/05
Go up one level in this thread
On February 22, 2005 at 15:13:05, Dann Corbit wrote: >On February 22, 2005 at 15:06:32, Uri Blass wrote: >>On February 22, 2005 at 14:45:07, Dann Corbit wrote: >[snip] >>>Exactly the same, only completely different: >>> >>>#include<stdio.h> >>>char q0??(9??)=??<'0','1','2','3','4','5','6','7','8'??>;int main(void >>>)??<int q1,q2,q3,q4;for(q1=0;q1<64;q1++)??<for(q2=0;q2<64;q2++)??<if( >>>q1==q2)continue;for(q4=0,q3=0;q3<64;q3++)??<if(q3&&(q3&7)==0)putchar( >>>'/');if(q3==q1||q3==q2)??<if(q4!=0)??<putchar(q0??(q4??));q4=0;??> >>>putchar(q3==q1?'N':'n');??>else??<q4++;if((q3&7)==7)??<putchar(q0??(q4 >>>??));q4=0;??>??>??>puts("\40\55\40\55\40\60\40\61");??>??>return 0;??> >> >> >>I find that it works but unfortunately I do not understand your code. >>I never use ?? in code that I write and I do not know what it means. > >It is Tim's algorithm, deliberately obfuscated. I used trigraphs and some other >icky tricks to make the exact same thing hard to read. > >>Tim's code is the shortest code that I can understand. > >That's the intent. It makes a simple algorithm into a C puzzle of another kind. > >So I turned a puzzle into another kind of puzzle. > >If you run it through your compiler's C preprocessor then you will see that it >looks almost exactly like Tim's code. This is the version that I used before I mangled it: #include <stdio.h> char counts[9] = {'0', '1', '2', '3', '4', '5', '6', '7', '8'}; int main(void) { int i, j, k, cnt; for (i = 0; i < 64; i++) { for (j = 0; j < 64; j++) { if (i == j) continue; for (cnt = 0, k = 0; k < 64; k++) { if (k && (k & 7) == 0) putchar('/'); if (k == i || k == j) { if (cnt != 0) { putchar(counts[cnt]); cnt = 0; } putchar(k == i ? 'N' : 'n'); } else { cnt++; if ((k & 7) == 7) { putchar(counts[cnt]); cnt = 0; } } } puts(" - - 0 1"); } } return 0; }
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.