Author: Scott Gasch
Date: 12:30:49 02/22/05
Go up one level in this thread
On February 22, 2005 at 13:14:09, Uri Blass wrote: >On February 22, 2005 at 08:35:07, Andrew Wagner wrote: > >>Hi all. >>I got sidetracked this morning by an interesting chess programming problem. It >>took me a couple hours, but I think I have a working algorithm -- haven't tested >>yet though. Anyway, I got to wondering if others would approach it the same way. >>So I thought I'd make a little competition of it. Post your code here, and I'll >>pick the program I like best and shower praise and adulation on its author. If >>people like this challenge, maybe I'll do one each month or something. Anyway, >>here's the one I did this morning: >>There are 64 x 63 = 4032 ways to put a black knight and white knoght both on a >>chess board. Write a program -- from scratch -- to generate FENs for each of >>these positions. The FENs should look something like: Nn6/8/8/8/8/8/8/8 w - - 0 >>1. >> >>I think my code will wind up weighing in at around 60-70 lines of C. Can you do >>better? > >Here is my code(not 100% sure of no bugs) > >It seems that there are better codes >based on looking at other codes > >#include <stdio.h> >int main(void) >{ >int whiteknight,blackknight,rank,N,n,empty1,empty2,empty3; >char c1,c2; >for (whiteknight=0;whiteknight<64;whiteknight++) > for (blackknight=0;blackknight<64;blackknight++) > if (whiteknight!=blackknight) > { > for (rank=7;rank>=0;rank--) > { > N=8; > n=8; > if ((whiteknight>>3)==rank) > N=whiteknight&7; > if ((blackknight>>3)==rank) > n=blackknight&7; > if (n<N) > { > empty1=n; > empty2=N-n-1; > empty3=7-N; > c1='n'; > c2='N'; > } > else > { > empty1=N; > empty2=n-N-1; > empty3=7-n; > c1='N'; > c2='n'; > } > if (empty1>0) > printf("%d",empty1); > if (empty1<8) > printf("%c",c1); > if (empty2>0) > printf("%d",empty2); > if (empty3>=0) > printf("%c",c2); > if (empty3>0) > printf("%d",empty3); > if (rank>0) > printf("/"); > } > printf(" w - - 0 1\n"); > } > return 0; >} > >Uri [ scott@wannabe:~/tmp ] % g++34 -O -S aaa.c ; wc -l aaa.s 196 aaa.s
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.