Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 8 queens problem meets obfuscated C programming

Author: Robert Hyatt

Date: 20:41:55 04/10/03

Go up one level in this thread


On April 10, 2003 at 06:35:07, Uri Blass wrote:

>On April 09, 2003 at 23:56:54, Russell Reagan wrote:
>
>>So...who wants to explain how this works? I don't know how it works, but it
>>finds all of the solutions to the 8 queens problem.
>>
>>#include <stdio.h>
>>int v,i,j,k,l,s,a[99];
>>void main(void){
>>for(s=8;*a-s;v=a[j*=v]-a[i],k=i<s,j+=(v=j<s&#38;&#38;(!k&#38;&#38;!!printf(2+"\n\n%c"-(!l<<!j),"
>>#Q"[l^v?(l^j)&1:2])&&++l||a[i]<s&#38;&#38;v&#38;&#38;v-i+j&#38;&#38;v+i-j))&#38;&#38;!(l%=s),v||(i==j?a[i+=k]=0:++a[i])>=s*k&&++a[--i]);
>> printf("\n\n");
>>}
>
>I do not understand this code because my C knowledge is not enough.
>
>What is *a-s
>
>I understand that j*=v is j=j*v butI do not understand the meaning when * is at
>the beginning of the command.
>
>I never used it.
>
>Uri

a is a pointer.  *a de-references the pointer and gets what a points at.  Since
a is declared as an array, a itself is a pointer to the first element of the
array and *a is the same thing as saying a[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.