Computer Chess Created In 487 Bytes, Breaks 32-Year-Old Record 204
An anonymous reader writes: The record for smallest computer implementation of chess on any platform was held by 1K ZX Chess, which saw a release back in 1983 for the Sinclair ZX81. It uses just 672 bytes of memory, and includes most chess rules as well as a computer component to play against. The 32-year-old record has been beaten this week by the demoscene group Red Sector Inc. They have implemented a fully-playable version of chess called BootChess in just 487 bytes (readme file including source code).
Incredible! (Score:5, Funny)
Next you'll be telling me you can create operating systems in less than 15GB!
Re:Incredible! (Score:5, Insightful)
I've noticed that they take a fairly liberal definition of "chess", as they simply discard certain rules, such as en passant pawn capture or castling moves, which are pretty important chess moves. It's a bit hard to argue that this is really "chess" if they just decide to leave out inconvenient rules ("chess lite?"). I probably wouldn't complain about other ommissions such as the 3-repetition rule, but castling?
Even so, a very cool accomplishment in micro-optimization techniques.
Re:Incredible! (Score:5, Interesting)
I've noticed that they take a fairly liberal definition of "chess", as they simply discard certain rules, such as en passant pawn capture or castling moves, which are pretty important chess moves. It's a bit hard to argue that this is really "chess" if they just decide to leave out inconvenient rules ("chess lite?"). I probably wouldn't complain about other ommissions such as the 3-repetition rule, but castling?
Hmmm ... Read your history of chess - Modern Chess is a variant called "Mad Queen" - there are more variants of chess than there are of Poker, and just because we have become used to an agreed-upon standard does not invalidate other styles ...
Re:Incredible! (Score:5, Insightful)
Modern Chess is not now a variant called Mad Queen. It is a standardized game referred to as Chess and understood world-wide.
Modern chess may have originated in a game that at one time was referred to as "Mad Queen".
Re:Incredible! (Score:4, Funny)
Re: (Score:2)
Unless you're in China, [wikipedia.org] where it's understood to be something different. Or Japan. [wikipedia.org] Or Korea. [wikipedia.org] Or...
Re: (Score:2)
I don't understand the point of your post at all? Yes, other nations have games that are similar to Chess (and that are genetically related to Chess--think 4th cousins twice removed) but that are not Chess and are not even called Chess!
Chess != Shogi != Shatranj != etc...
Re: (Score:2)
Re: (Score:3)
I think the point is that you don't win a 100m race by running 90m and then arguing about the exact definition of a metre.
It's an incredible feat to squeeze any variant of chess into 487 bytes, but if you're going to compare apples to apples and maintain a record, the games should follow the same rules.
Re: (Score:2)
Because nobody has been bitten by a corgi on slashdot.
Although I'm starting to wonder if Prince Phillip is here, given the amount of casual racism arising in AC posts at the moment.
Re: (Score:3)
Well, the real question is if this program was replicating the same rules as the one that was previously accepted and supposedly beat?
Like the previous record holder, this program implements neither en passant nor castling.
Unlike the previous record holder, this program implements queening, so it is both smaller and has an additional feature.
Re:Incredible! (Score:5, Informative)
Re: (Score:2, Insightful)
I suppose that's legit, if they're purposely reproducing the limitations of that original program, in which case there's a baseline to measure against with similar rule sets. Do you happen to know if that's the case - that the chess rules actually match? I read the articles linked but didn't see that specifically mentioned.
I still have an issues with the claim of "world's smallest chess program on any platform", though, because it's not a complete chess program as nearly anyone would define it.
Re: (Score:2)
It has a visual representation of the board, which is more than would be required to qualify as a complete chess program.
Re: (Score:3, Insightful)
You've got to be kidding. A visual representation of the board is insufficient to distinguish it from Checkers!
About the same as a chessboard (Score:3)
My source [about.com] states that a checkerboard has 64 squares, like a chessboard.
Re: (Score:3)
What? That doesn't sound right ... because I'm pretty sure I've seen a board which comes with both chess and checkers pieces.
I'm not buying that at all -- they're both 8x8.
You're just making shit up.
Re:Incredible! (Score:5, Informative)
Looking at the comment threads, yes, it appears to be a 'faithful' implementation of the original code's rules, or rather a superset, since it includes the pawn promotion rule and the original did not.
Min
Re: (Score:3)
Re: (Score:2)
Atari 2600 cartridges are 4 kB maximum. It's certainly possible the game only used a fraction of that, but highly unlikely.
The 2600 did only have 128 bytes of RAM, but none of this would be needed for the program itself, which would be accessed directly from cartridge ROM by the CPU. On the ZX, the code would have to fit within the 1kB and the remaining RAM would be available for its execution.
Re: (Score:2)
"Atari 2600 cartridges are 4 kB maximum."
Not really, once they figured out some simple logic circuits they could bank switch more ROM than that, and probably address RAM chips too.
http://www.schells.com/ccbackg... [schells.com]
Re: (Score:2)
Mapper chips were invented for Video Chess but weren't actually used in the final release, which was squeezed into 4096 bytes. (source [atariage.com])
Re: (Score:3)
I've tried many cheap versions of electronic chess, and most of them have no support for en passant (a couple don't have support for castling either). Not only that, but playing against other players, most people who play chess for recreation don't seem to know about an passant, anyway. So, let's call it's chess 2.0. Streamlined for the modern audience.
Re: (Score:2, Informative)
Depends on what you consider an operating system. Alpine Linux uses 130 MB (http://alpinelinux.org/about), including an usable graphical interface (Xfce).
A really minimal system, like a virtual machine running a site, can be reduced to far less than that. For instance, Mirage OS (http://www.openmirage.org).
Windows, OSX, and some Linux distros are not designed to be tweaked like that.
Re: (Score:2, Informative)
Don't forget MenuetOS [menuetos.net] and its opensource derivative KolibriOS [kolibrios.org]. They fit on a single floppy.
Re: (Score:2)
DOS and GEM on the same floppy, with room to spare.
Re: (Score:2)
or.. you know.. some old ass whatever distro..
or win95.. fits nicely.
or dos with win 3.11, fits even nicer...
Re: (Score:2)
A really minimal system, like a virtual machine running a site, can be reduced to far less than that. For instance, Mirage OS (http://www.openmirage.org).
We've seen a web server running on a Commodore 64. Wasn't that a 12 kB OS? It's been a while, but IIRC the OS was in memory from D000 to FFFF.
I've worked on mainframes where the "recovery OS" fit on one tape block - a hard 32 kB constraint (used for disaster recovery - it would load a program that also had to fit in 32 kB which would restore a system from backups). The normal OS wasn't much bigger. Most device drivers weren't memory resident, for example, and shared 4 kB by swapping in and out, which co
Re: (Score:2)
Next you'll be telling me you can create operating systems in less than 15GB!
Indeed they can. Unfortunately they decided to let the people responsible for ACPI actually follow through on that, and then decided that it would make a good bootloader.
Re:Incredible! (Score:5, Funny)
If you complain, we'll re-write it in Java and make it 30GB
Re:Incredible! (Score:5, Informative)
there was a 4KB Java games contest some years http://en.m.wikipedia.org/wiki... [wikipedia.org]
one of the winning entries was a chess game. May be interesting to check.
Re:Incredible! (Score:4, Informative)
here is the link to aichess4k site http://ulf.ofahrt.de/aichess4k... [ofahrt.de]
"aichess4k implements all chess rules and tops it off
with an ai that casual players find difficult to beat."
and a graphical board from the screenshots
Re: (Score:2)
30GB
- Boy are YOU an optimist...
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Innovation-starved corporations
Cynicism to the rescue!
Now dont mind me, Ill go back to using my 14nm process CPUs, 99% accurate voice recognition phone, holographic 3d goggles, and affordable SSD computer.
Re: (Score:3, Interesting)
14nm process CPUs
To process the bloat.
99% accurate voice recognition phone
You must speak very slowly, and with a Cupertino-approved accent.
holographic 3d goggles
Oh goodie, another piece of VR headgear that will be hyped for 3 years, bought for 2, then die.
affordable SSD
I had an affordable SSD in 1992 for my Psion Series 3a.
Re: Incredible! (Score:2)
Rolling on my lawn laughing...
Re: (Score:3)
wally: "When I started programming, we didn't have any of these sissy "icons" and "windows". All we had were zeros and ones — and sometimes we didn't even have ones. I once wrote a database using only zeros."
dilbert: "You had zeros? We had to use the letter "O"."
"Fully-playable" (Score:4, Interesting)
or "play-worthy" ?
There's a difference.
Re: (Score:2)
Apple Integer BASIC Chess (Score:5, Interesting)
1 INPUT "DO YOU WANT INSTRUCTIONS (Y OR N)?",A$: IF A$#"Y" AND A$#"N" THEN 1: IF A$="Y" THEN GOSUB 30000
2 REF=5: CALL -936
3 INPUT "COMPUTER TO PLAY WHITE(0) OR BLACK(1)",WHO
4 IST=0
5 DIM WC(99),BC(99)
6 DIM V(6),P(26),C(3)
7 DIM KING(16)
8 DIM A(70)
10 DIM M(120),W(120),B(120),I(6)
11 DIM G(100)
12 FOR X=1 TO 120:M(X)=0: NEXT X
14 FOR X=1 TO 99:W(X)=0:B(X)=0: NEXT X
15 FOR X=2 TO 9:X1=10*X:X2=X1+1:M(X1)=7:M(X2)=7: NEXT X
16 DIM STR$(10),FILE$(8),RANK$(8)
17 FILE$(1)="A":FILE$(2)="B":FILE$(3)="C":FILE$(4)="D":FILE$(5)="E":FILE$(6)="F":FILE$(7)="G":FILE$(8)="H"
18 RANK$="12345678"
20 FOR K=1 TO 21:K2=K+99:M(K)=7:M(K2)=7: NEXT K
22 FOR K=32 TO 39:K2=K+50:M(K)=1:M(K2)=-1: NEXT K
23 M(22)=4:M(23)=2:M(24)=3:M(25)=5:M(26)=6:M(27)=3:M(28)=2:M(29)=4
25 FOR K=22 TO 29:K2=K+70:M(K2)=-M(K): NEXT K
30 I(1)=12:I(2)=15:I(3)=10:I(4)=1:I(5)=6:I(6)=6
35 V(1)=1:V(2)=3:V(3)=3:V(4)=5:V(5)=9:V(6)=10
40 P(1)=-1:P(2)=1:P(3)=10:P(4)=-10:P(5)=0:P(6)=1:P(7)=-1
45 P(8)=10:P(9)=-10:P(10)=-9:P(11)=-11:P(12)=9:P(13)=11:P(14)=0
50 P(15)=8:P(16)=-8:P(17)=12:P(18)=-12:P(19)=19:P(20)=-19
55 P(21)=21:P(22)=-21:P(23)=0:P(24)=10:P(25)=20:P(26)=0
60 C(1)=8:C(2)=0:C(3)=3
80 IF WHO=1 THEN 90
85 M(25)=6:M(26)=5:M(95)=-6:M(96)=-5
90 GOSUB 5000
93 FOR II=1 TO 120:W(II)=0:B(II)=0: NEXT II
95 IF WHO=1 THEN 100:T2=0: GOTO 1000
100 REM MAKE MOVE
101 GOSUB 4000
105 Z9=0
110 GOSUB 4200
115 GOSUB 5000: IF WHO=0 THEN 1000
116 M9=M9+1: IF M9>REF THEN 120
117 IF T2>4 THEN 120: IF IST=1 THEN GOTO 120
118 F2=9-F2:T2=9-T2: GOSUB 4200: GOSUB 5000: GOTO 100
120 REM FILL CONTROL ARRAYS
122 N8=0:IST=1
125 FOR X1=22 TO 99:WC(X1)=0:BC(X1)=0: IF M(X1)=6 THEN BKING=X1: IF M(X1)=-6 THEN WKING=X1: NEXT X1
130 FOR X=22 TO 99: IF M(X)<1 THEN 170: IF M(X)=7 THEN 170: GOSUB 8000: IF N9=0 THEN 170
150 FOR X1=1 TO N9:TO=G(X1)-G(X1)/100*100: IF M(TO)>0 THEN 168
164 N8=N8+1:A(N8)=G(X1)
168 BC(TO)=BC(TO)+1
169 NEXT X1
170 NEXT X
172 FOR X=22 TO 99: IF M(X)>-1 THEN 180: GOSUB 8000
173 IF N9=0 THEN 180
174 FOR X1=1 TO N9:TO=G(X1)-G(X1)/100*100:WC(TO)=WC(TO)+1
176 NEXT X1
180 NEXT X
181 GOTO 3000: REM CASTLE LOGIC
182 REM FILL KING CONTROL ARRAY
184 KING(1)=BKING+1:KING(2)=BKING-1:KING(3)=BKING+10:KING(4)=BKING-10
185 KING(5)=BKING+11:KING(6)=BKING-11:KING(7)=BKING+9:KING(8)=BKING-9
186 KING(9)=WKING+1:KING(10)=WKING-1:KING(11)=WKING+10:KING(12)=WKING-10
187 KING(13)=WKING+11:KING(14)=WKING-11:KING(15)=WKING+9:KING(16)=WKING-9
190 V9=-10000:I9=0: FOR X4=1 TO N8:N4=0:F4=A(X4)/100
210 T4=A(X4)-F4*100:F5=M(F4):T5=M(T4)
212 REM FIND MOVES OFPIECE IN PRESENT POSTION.
214 X=F4: GOSUB 8000
225 M(T4)=M(F4):M(F4)=0
235 GOSUB 9000: IF N4<=V9 THEN 255
245 V9=N4:F9=F4:T9=T4
255 M(F4)=F5:M(T4)=T5:
256 Z9=Z9+1: IF Z9>20 THEN Z9=1: TAB 26: VTAB Z9: PRINT F4;" : ";T4;" V= ";N4
259 NEXT X4
270 F1=F9:T1=T9:M(T1)=M(F1):M(F1)=0:F6=F1-F1/10*10-1:F7=10-F1/10:T6=T1-T1/10*10-1:T7=10-T1/10
280 IF WHO=1 AND F1=22 THEN QROOK=1
281 IF WHO=1 AND F1=29 THEN KROOK=1
282 IF M(T1)=6 THEN MKING=1
283 IF WHO=0 AND F1=22 THEN QROOK=1
284 IF WHO=0 AND F1=29 THEN KROOK=1
310 PRINT "FROM ";F6;F7
Re: Apple Integer BASIC Chess (Score:4, Funny)
Re: (Score:2)
Re: (Score:2)
Quantum chess, my favorite! Oh wait, that's the prenup fineprint
He was right! (Score:4, Funny)
Toldja, 640 bytes otta be enough for anyone. -Gill Bates
Best short programs (Score:4, Interesting)
It would be cool to see which programming languages could have the best short chess programs.
I'd nominate Haskell, scheme and prolog to try it in.
Re: (Score:2)
Also lua which is actually pretty close to self in power. Or smalltalk.
Re: (Score:2)
It would be cool to see which programming languages could have the best short chess programs.
I'd nominate Haskell, scheme and prolog to try it in.
To make things fair, I think you'd have to define the valid set of languages as general purpose languages. I could see coming up with a chess-specific language that would be super-efficient in that the language would already have known chess properties as built-in elements.
Yaz
Re: (Score:2)
Well I think part of what makes a higher level language is the potential for writing powerful special purpose languages in it easily.
Scheme and prolog both have macros and both have the ability to compile code at run time as well. Prolog also has the ability to define new operators. And it's awfully good at parsing, building and walking trees.
Re: (Score:2)
Re: (Score:2, Informative)
It would be cool to see which programming languages could have the best short chess programs.
I'd nominate Haskell, scheme and prolog to try it in.
The game discussed here is written in x86 asm. The source code is certainly having more bytes than 487b, but the compiled result is just 487b. If you would write it in any of the languages you mentioned, the compiled result would be bigger.
Re: (Score:2)
Well I said "best" short programs. I suspect that that tiny program isn't "good", ie plays a crumby game.
Prolog is very good at encoding rules very succinctly and does depth first searches automatically (it's a bit harder to get more advanced search strategies, but it can be done.) Scheme has continuations so one could probably encode more kinds of search more succinctly than even prolog. Haskell has normal order lazy evaluation, so it's succinct to separate search strategies from state generation, though
Re: (Score:3)
Re: (Score:2)
What you're saying doesn't matter. The point is that the measured result has to include the runtime environment. Because of that, even "Hello World" in Prolog, Scheme, or Haskell is probably* going to be bigger than 487 bytes.
(* I haven't actually looked up the runtime size of those languages.)
Re: (Score:2)
Probably if they allowed themselves to use the full 512 bytes, it could enforce all the rules. Alas, I wonder what would come out with APL :)
Re: (Score:2)
If you think in terms of as much stuff done in as little characters as possible, there is no competition for PERL.
I think this particular competition though is counting bytes of machine code. I thought I was pretty good myself with reducing a printer driver into 136 bytes, but Chess in 500 that is really something.
Re: (Score:2)
Re: (Score:2)
If you want small, forth is probably the best... better than assembly. Java uses it to convert source to forth-like intermediate language (jvm) opcodes.
Re: (Score:2)
Perl would win hands down no contest.
I've never figured out how this one works:
http://www.99-bottles-of-beer.... [99-bottles-of-beer.net]
(not that I've tried too hard - its just a work of art)
Re: (Score:2)
Could anyone do it in one line of APL [cloud9.net]?
Re: (Score:2)
I'm more interested in optimizing how complete and high quality the result is, in a surprisingly short program than in meeting some context metric for program size.
My actual interest is the intuition that there are shockingly powerful methods hidden in more expressive programming languages with more exotic features.
Missing chess rules (Score:3)
From the readme:
Underpromotion may be understandable, maybe en-passant since it doesn't come up that oftean, but castling makes a ton of games unplayable.
Also, purists consider anything that implements these three rules to be a better record than something that omits three rules.
really? (Score:2)
purists of what?
what you can be sure though is that red sector has a better theme than the others.. https://www.youtube.com/watch?... [youtube.com]
I question the ZX-81 claim (Score:2)
Dodgy record (Score:2)
Surely the record depends on the expressiveness of the instruction set of the chip you are programming for. With a suitably advanced chip I could implement chess in 1 byte. It would be an instruction that looks like this:
JMP CHESS.
and an instruction that implements chess.
Re: (Score:2)
That's what mathematicians refer to as "trivial", which is one of the most derogatory terms in mathematics.
Re: (Score:2)
Re: (Score:2)
Surely the record depends on the expressiveness of the instruction set of the chip you are programming for. With a suitably advanced chip I could implement chess in 1 byte. It would be an instruction that looks like this:
JMP CHESS.
and an instruction that implements chess.
One whole byte! You slacker. You could implement this as one bit - have it be the only instruction.
Easily breakable (Score:2)
Re: (Score:2)
Specialized chess hardware has been very high profile.
Deep Blue used specialize circuitry :(
Before that there was Hi Tech
I want a showdown! (Score:4, Interesting)
BootChess vs1K ZX Chess
Probably a bit like watching snails race, but snail-races can get interesting.
Its even more impressive... (Score:5, Interesting)
... when you consider the ZX81 chess was written in Z80 assembler whereas this is in x86 asm and although both have variable sized instructions the x86 will on average be larger.
Re: (Score:3)
... when you consider the ZX81 chess was written in Z80 assembler whereas this is in x86 asm and although both have variable sized instructions the x86 will on average be larger.
Why do you say that?
My understanding (and if I'm wrong feel free to correct) is that the Z-80 is a bastard clone of an 8080. So, byte-for-byte there should be no difference between the two (if you keep the x86 in real mode). BIOS calls and the need to implement the boot sector code add some guff to the x86, of course, which makes RSI's achievement that much more impressive.
Re: (Score:2)
Re: (Score:2)
"The provided source utilizes the 16-bit instructions present from the original Intel 8080 processor that are still maintained backward compatible today."
And probably a number that weren't.
"This solution is probably binary compatible with a Z80 processor."
Even at a glance I can see the movsx instructrion which won't be supported by the Z80. I'm sure there are others.
Re: (Score:2)
... when you consider the ZX81 chess was written in Z80 assembler whereas this is in x86 asm and although both have variable sized instructions the x86 will on average be larger.
What sort of onboard computer facilities is the x86 version able to use? I assume the ZX81 version would made used calls to various pre-defined routines in the 8K OS/BASIC ROM (safe to say it would have been absolutely impossible to do in 1KB without that), so it isn't "cheating" for the x86 version to do the same... but it does make it hard to compare if the x86 BIOS or other firmware is far more sophisticated and includes routines that the ZX81 version would have had to implement itself (i.e. within the already constrained space).
Have a look at the ASM for the ZX-81 code. Keep in mind that ROM calls are in the 0..8192 range, and there was no documentation of the system like there is of a modern BIOS today (yes, I'm aware of Ian Logan's Understanding your ZX81 ROM; that book was an introduction to writing assembly on a ZX81, not a ROM dump). From looking at the ZX81 asm (having to stretch my brain to remember Z-80 syntax), it looks to me that the code is completely self-contained. It picks up the display file address (who remember
Missing rules (Score:2)
Re: (Score:2)
We await the results of your effort.
Comments (Score:2)
I can do it in 14 bytes (Score:2)
Here's a chess playing program in 14 bytes, written in BBC Basic.
1 P."I Resign"
Re:"includes most chess rules" (Score:5, Funny)
They have altered the rules. Pray they do not alter it further.
Re:some rules *nearly* never come up (Score:4, Interesting)
the fifty-move rule which states that the game may end in a draw if you play 50 moves without any pawns moved or any captures made
FTFY. It doesn't end automagically, a player has to invoke that rule explicitly.
(or 100 moves in certain special board states).
I've never heard about that, but the wikipedia article you linked says that this rule was in effect from 1952-1992. It's not anymore [fide.com]
I'm willing to call this proof of concept as chess even if it doesn't fully implement that.
We don't need no proof of concept for chess, it's kind of an old thing. The point here is to fit the stuff in <512 bytes, which they say they couldn't do without leaving away en passant, castling, etc. So I don't really see how this is proving any concept.
That being said, It's pretty impressive to implement what they did in this little amount of storage. It's just not chess. Now get off my lawn.
Re: (Score:3)
It would be a lot more impressive if they went to 2k and had it actually working. I can understand the motivation to play code golf, but every code golf I've played requires a fully correct answer to earn the right to count the bytes.
Re: (Score:3)
Re: (Score:2)
Actually, it does end automatically. I've seen it happen playing chess online.
What kind of argument is that? I've seen it in an online chess game, so this defines the rules?
I for one have seen an online football (not handegg) game which was played using 5 rather than 11 players per team. Guess how much that says about the official football rules..
Since you seem unable to do your research even when given a direct link, here's an inline quote of what I linked in the post you replied to:
9.3
The game is drawn, upon a correct claim by the player having the move, if:
a. he writes his move on his scoresheet and declares to the arbiter his intention to make this move, which shall result in the last 50 moves having been made by each player without the movement of any pawn and without any capture, or
b. the last 50 consecutive moves have been made by each playerwithout the movement of any pawn and without any capture.
Emphasis mine. Get it?
In an OTB (over-the-board) game, I am convinced a draw would be agreed upon well beforehand unless one player was going for a time win.
No. You either mutually agree on a draw, which you can do at any time, with
Re: (Score:2)
Re: (Score:2)
Sorry I didn't have time to research before, because you know this thing called work.
You ... work? *gasp*. How uncommon.
But here it is for you, I spent the time to look at the FIDE handbook instead of wikipedia. At 50 moves you can claim a draw, which is automatically implemented online at every chess website I've played on
I know only two online chess services, one of which I've written myself, the other being FICS (freechess.org), which AFAIK is the largest free such service out there. Neither of the two systems automatically invokes the draw.
, but it's actually at 75 moves it legally ends as a draw whether or not you claim it in OTB tournaments. So we were both wrong.
Enjoy:
http://www.fide.com/fide/handb... [fide.com]
Section 9.6
'any consecutive series of 75 moves have been completed by each player without the movement of any pawn and without any capture. If the last move resulted in checkmate, that shall take precedence.'
So, what exactly does OTB mean? Genuine question, because so far I assumed it means playing in meatspace using a physical chess board+pieces, which can't be the case if your statement is to be trusted because it somehow seems to not cover tournament g
Re: (Score:2)
487 bytes of of source, 57k of commentary.
Re: (Score:2)
It's chess more or less as it was played 100+ years ago. It's not FIDE chess, that's true.
Re: (Score:2)
It's chess more or less as it was played 100+ years ago
No it isn't....
Why even open your mouth?
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
This is par for the course for chess programs of that generation, though. I remember an old DOS chess program that would allow "castling" by just switching the king and rook, regardless of whether there were pieces between them. One Win 3.11 chess program I remember, was ridiculously easy to break if you used the take back a move function. Some sort of internal data structure wasn't properly cleaned if you did that, so the computer would start making illegal moves, randomly putting pieces on the board, etc.
Re: (Score:3)
Perhaps they intend to work in the games industry.
Oh do shut up (Score:5, Insightful)
Why can't people like you just appreciate the technical accomplishment instead of nit picking.
Tell you what - why not go away and try and write any type of chess program then get back to us?
As someone who has written a chess program which even after some code optimisation still came out at ~3000 lines of C, I can tell you this is damn impressive.
Re: (Score:2, Interesting)
Re: (Score:2)
Ouch.
You're reminding me how HARD chess is.
Chess isn't a game that I should be messing with, I'll never know what makes a good strategy in it.
Re: (Score:2)
So today's /. project is to implement Go in the Go language?
Re: (Score:2)
I'm sure it's already been done, but impossible to find with a search engine.