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.