ChessBase: A Gross Miscarriage of Justice in Computer Chess

General discussion about computer chess...
hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by hyatt » Tue Jan 03, 2012 5:51 pm

Rebel wrote:
kingliveson wrote: This is telling given his affiliation with Rybka. And true, there was no new evidence presented in the opinion piece, or by Mr. Schröder. At this point, nothing short of releasing the source code could exoneration Rybka.
Hi,

http://www.top-5000.nl/evidence.htm#C6

I think that:

Code: Select all

Compile the following code with any of the MS compilers.

static int T=1;
void main() { if (T >= 0.) T=5; }

It will produce the same code as 0.0
is quite interesting.

Also the PST's

http://www.top-5000.nl/pst.htm

For starters :mrgreen:

?? 0. and 0.0 are EXACTLY the same constant. So you REALLY want to claim that he used 0. rather than 0.0 and therefore did NOT copy the 0. code? You know better. I know better. We ALL know better. Your PST analysis shows either that you know zip about math, or you are dishonest. Either one is bad.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by hyatt » Tue Jan 03, 2012 5:56 pm

One addendum to Mark's quibbles:

None of the actual Rybka versions that participated in the four WCCC tournaments were investigated, although a very close version (Rybka 2.3.2a) was examined following a laborious process of reverse-engineering.

We know that Lukas, the OPERATOR for Rybka, clearly stated that 2.3.2a DID participate in the event in question. This quote was found on the Rybka Forum from a post Lukas made DURING the tournament that he was operating that version of Rybka. So we tested EXACTLY the version that participated.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by hyatt » Tue Jan 03, 2012 6:03 pm

Uly wrote:And even if it was, the 0.0 is in the middle of non-playing code, so the 0.0 or any other copied part in there couldn't break ICGA's rule 2.
Eh? One can't argue that timing decisions are not part of the "game playing code". In fact, timing is one of several CRITICAL aspects of an engine and how it performs. Just enter an engine that only plays at 1 sec per move into tournaments and see what happens...

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by hyatt » Tue Jan 03, 2012 6:15 pm

Jeremy Bernstein wrote:Part 2 is out: http://www.chessbase.com/newsdetail.asp?newsid=7807

Says exactly nothing that he has not already said on the Rybka Forum. Summary: "The ICGA doesn't understand its own rules, and for plagiarism, copying ideas or code is wrong. Or it is not wrong. Or it is somewhere in between." Even though the ICGA (and even copyright law) has never discussed "copying ideas" as "plagiarism" or "a copyright violation". We are, and always have been, talking about copying code. I notice at the bottom that Ed pressed him to write this report. BIG surprise. More misinformation on Ed's site than any other place except the Rybka forum...

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by kingliveson » Tue Jan 03, 2012 6:32 pm

hyatt wrote:
Uly wrote:And even if it was, the 0.0 is in the middle of non-playing code, so the 0.0 or any other copied part in there couldn't break ICGA's rule 2.
Eh? One can't argue that timing decisions are not part of the "game playing code". In fact, timing is one of several CRITICAL aspects of an engine and how it performs. Just enter an engine that only plays at 1 sec per move into tournaments and see what happens...

It is true that time management matters very much. A balance between long search and not getting in time trouble is very important. Just the other day, I posted how Komodo destroys opponents by getting them in time trouble. IPON rating list removed latest Stockfish recently due to timing bug.
PAWN : Knight >> Bishop >> Rook >>Queen

Adam Hair
Posts: 104
Joined: Fri Jun 11, 2010 4:29 am
Real Name: Adam Hair
Contact:

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by Adam Hair » Tue Jan 03, 2012 9:39 pm

kingliveson wrote:
Jeremy Bernstein wrote:Part 2 is out: http://www.chessbase.com/newsdetail.asp?newsid=7807
Trying to re-write history I see... He forgot that that same dendrogram convicted Fritz (ChessBase product) of being a Strelka clone. :)

Image
Soren is actually quoting a different dendrogram that Kai produces. Also, there is a problem with the test and dendrogram that Kai did for Fritz. He is combining two different data sets ( positions analyzed are different between the two data sets) to draw conclusions about Fritz. It met his expectations and so he has not checked to see if the results are reproducible or valid.

User avatar
Uly
Posts: 838
Joined: Thu Jun 10, 2010 5:33 am

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by Uly » Tue Jan 03, 2012 10:26 pm

hyatt wrote: In fact, timing is one of several CRITICAL aspects of an engine and how it performs.
But not THAT critical, the engine with the best game-playing code is still more likely to win.

Here, I run two games between Crafty 23.4 and Critter 1.4, giving Crafty 5 minutes + 2 seconds of increment, and Critter fixed exact one second per move.

In the first game Critter doesn't have problems reaching a position that Crafty doesn't know how to play.

In the second game Crafty gives up to a 2.82 score to a position it cannot win, and then goes and eventually loses it!

[White "Critter 1.4"]
[Black "Crafty 23.4"]
[Result "1-0"]

1. d4 Nf6 2. Nf3 d5 3. Bf4 e6 4. e3 Be7 5. Bd3 Nh5 6. Be5
Nc6 7. h3 Nxe5 8. dxe5 g6 9. c4 O-O 10. Nc3 c6 11. g4 Ng7
12. O-O f5 13. Qe2 Bd7 14. a3 Rc8 15. Rad1 Qa5 16. Nd4 f4
17. cxd5 cxd5 18. Bb5 Bxb5 19. Qxb5 Qxb5 20. Ndxb5 a6
21. Nd6 Bxd6 22. exd6 Rc4 23. e4 d4 24. Nb1 e5 25. Nd2 Rc6
26. Nf3 Rxd6 27. Nxe5 Re8 28. Nc4 Rc6 29. Na5 Rc2 30. Nxb7
Ne6 31. b4 Rc3 32. Kg2 Rxa3 33. Ra1 Rb3 34. Nd6 Rb8
35. Rxa6 R3xb4 36. e5 Nc5 37. Ra5 Ne6 38. Ne4 Kf8 39. Rfa1
R4b7 40. h4 h6 41. Ra6 Re7 42. Rd6 Kf7 43. Rc6 Kg7 44. Raa6
Nf8 45. h5 Rd8 46. hxg6 d3 47. Nd6 Kg8 48. Nf5 Rxe5 49. g7
Ne6 50. Rd6 Rxd6 51. Rxd6 Nxg7 52. Nxh6+ Kf8 53. Rxd3 Ke7
54. Kf3 Ne6 55. Nf5+ Kf6 56. Rd6 Kg5 57. Rb6 Re1 58. Rb5
Kf6 59. Rb4 Rc1 60. Rb6 Ke5 61. Nh4 Rc4 62. Ng6+ Kd5
63. Rb5+ Kd6 64. Ra5 Nd4+ 65. Kg2 Ne6 66. Nh4 Kd7 67. g5
Rc7 68. Kf3 Kd8 69. Kg4 Kd7 70. g6 Ke7 71. Nf5+ Kf6 72. Ra6
Ke5 73. Nd6 Ng7 74. Nf7+ Kd5 75. Kxf4 Rc2 76. Rd6+ Kc5
77. Kf3 Nf5 78. Rf6 Rc3+ 79. Ke4 Ne7 80. Ne5 Ra3 81. Nd7+
Kb5 82. g7 Ra4+ 83. Ke5 Rg4 84. Rf7 Nc6+ 85. Kf6 Rg2 86. f4
Nb4 87. f5 Rg3 88. Rf8 Nd5+ 89. Kf7 Ne7 90. f6 Nf5 91. Ne5
Kc5 92. Rd8 Kb4 93. g8=Q Rxg8 94. Rxg8 Kc5 95. Ke6 Nd4+
96. Kd7 Kd5 97. f7 Ne6 98. Nd3 Nf8+ 99. Rxf8 Kd4 100. Re8
Kxd3 101. f8=Q Kc3 102. Qa3+ Kd2 103. Rc8 Kd1 104. Qb2 Ke1
105. Rc1# 1-0

[White "Crafty 23.4"]
[Black "Critter 1.4"]
[Result "0-1"]

1. Nc3 d5 2. Nf3 e5 3. Nxe5 d4 4. Nb1 Bd6 5. Nc4 Nf6 6. e3
O-O 7. Nxd6 Qxd6 8. Be2 c5 9. d3 Nc6 10. e4 Be6 11. f4 Rfe8
12. O-O Qe7 13. Na3 Rad8 14. Bd2 h6 15. Bf3 Kh8 16. e5 Nd5
17. Nc4 b5 18. Nd6 Rxd6 19. exd6 Qxd6 20. Re1 Rd8 21. a4 b4
22. g3 Kg8 23. Rc1 Nf6 24. Qe2 Bh3 25. Kh1 Re8 26. Qf2 Ne7
27. Re2 Bd7 28. b3 Bh3 29. Rce1 a5 30. Qg1 h5 31. Re5 Be6
32. Kg2 g6 33. h3 Nd7 34. R5e2 Nf6 35. Qh2 Nf5 36. Kg1 Kg7
37. Qf2 Rh8 38. Bc1 Nd5 39. Re5 Nf6 40. Qg2 Rd8 41. Qh2 Rg8
42. Bd2 Rh8 43. Qg2 Rd8 44. Qf2 Rh8 45. Qh2 Ng4 46. Bxg4
hxg4 47. h4 Bd7 48. Bc1 Bc6 49. Bb2 Bb7 50. Kf1 Qc6
51. R1e4 Qc7 52. Re2 f6 53. Rxf5 gxf5 54. Re1 Bf3 55. Qf2
Qf7 56. Qg1 Rf8 57. Kf2 Qd7 58. Qf1 Kh6 59. Bc1 Kg6 60. Kg1
Re8 61. Kf2 Rd8 62. Bb2 Qf7 63. Kg1 Kh6 64. Bc1 Re8 65. Kf2
Rh8 66. Bb2 Rg8 67. Ba1 Rb8 68. Kg1 Qd7 69. Qf2 Kg7 70. Bb2
Rg8 71. Qd2 Re8 72. Rxe8 Qxe8 73. Kf2 Qd7 74. Qe1 Kh6
75. Bc1 Kg6 76. Bd2 Kh5 77. Kf1 Qf7 78. Bc1 Kg6 79. Qf2 Qe6
80. Qh2 Kf7 81. Qd2 Qd7 82. Bb2 Kg7 83. Qe1 Kh6 84. Bc1 Kh7
85. Qf2 Qe7 86. Qd2 Kg7 87. Qe1 Qf7 88. Kf2 Kg6 89. Bb2 Kh6
90. Qc1 Qb7 91. Qf1 Kh5 92. Bc1 Kg6 93. Bb2 Qe7 94. Qe1 Qf7
95. Kf1 Kg7 96. Ba1 Kh6 97. Kf2 Kh5 98. Qd2 Qe6 99. Bb2 Kg6
100. Bc1 Qd6 101. Kf1 Kf7 102. Bb2 Qe7 103. Qe1 Qd8
104. Qf2 Qe8 105. Qh2 Qe3 106. Qf2 Qxf2+ 107. Kxf2 Bd1
108. Ba1 Bxc2 109. Ke1 Bxb3 110. Kd2 Bxa4 111. Bb2 Bc6
112. Kc2 a4 113. Bc1 a3 114. Kd2 Ke6 115. Kc2 Be4 116. Kd2
a2 117. Bb2 Bxd3 118. Kxd3 Kd5 119. Kc2 c4 120. Ba1 d3+
121. Kd2 Ke4 122. Kd1 Ke3 123. h5 d2 124. h6 Kd3 125. h7 c3
126. Bxc3 bxc3 127. h8=Q a1=Q# 0-1

The game playing code, that is, the part of the engine that is responsible of deciding what moves are played, is so superior in Critter that it doesn't matter how it manages its time against Crafty.

Adam Hair
Posts: 104
Joined: Fri Jun 11, 2010 4:29 am
Real Name: Adam Hair
Contact:

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by Adam Hair » Tue Jan 03, 2012 10:47 pm

I have several problems with Soren Riis' article up to this point, but there is one thing that I feel qualified to address publicly. In the second part of the article, he discusses Don Dailey's similarity tester and data that has been generated by it. In particular, Professor Riis attributes this assessment to Miguel Ballicora:
Soren Riis wrote:Dr. Miguel Ballicora, author of chess program Gaviota, came up with similar findings based a larger set of data. A large set of program “trees” is vitally important to identify program similarity, because with more data ‘families’ of programs emerge more clearly. Ballicora found that the relationship between Fruit and Rybka is NOT significant. With more data you soon realize that the distance between Rybka 1.0 Beta and Fruit 2.1 is not less than other unrelated engines.
The phylogenetic tree that was developed from that data did not have Rybka 1.0 in the same branch as Fruit 2.1, whereas Loop and Onno were. However, this does not mean that the relationship between Rybka 1.0 and Fruit 2.1 is no closer than between two unrelated engines. I do not have access to my data at the moment (for clarity, I am the person who generated the data that Soren is referring to), but I can show a graph that shows my point.

The points in this graph represents the percentage of moves matched between pairs of engines (y axis) when using the similarity tester as related to Elo difference (x axis). Fruit 2.1 and Rybka 1.0 chose 56.85% of moves in common in one run of the test that I reported on CCC. I do not remember the precise Elo difference that I determined for my test, but it is in the neighborhood of 100 to 150 Elo. As can be seen in the graph, the percentage of matched moves between Rybka 1.0 and Fruit 2.1 is not spectacularly high (such as the Loop 2007/Fruit 2.1 pair), but is significantly different than the average.

Image

While not necessarily condemning Rybka 1.0, this data does not exonerate it either.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by BB+ » Tue Jan 03, 2012 10:52 pm

Part #2 has appeared. A Part 3 is promised (where the evaluations will be discussed). A bit surprisingly, Dr. Riis thanks a number of people for "eagle-eyed proof reading" at the end, yet I found some (rather obvious) factual errors at first glance (e.g., claiming FL's interview was from 2008) -- maybe fact-checking was not their task? :lol:

From the top:

Dr. Riis obsesses over a "paradigm shift". He then gives some (unsourced) Elo-based data to try to bolster this conviction (he also argues that the ICGA should adopt this shift also). Some of the data appears wrong and/or presented in a dubious manner (see below -- the errors seem significant enough to affect his conclusions). It is also almost completely irrelevant (similar to his hagiography of Rybka games in Part 1) to the question of whether Rajlich's entries into the ICGA events met their originality standard (he tries to argue that Elo gain is a sign of originality, but does not make apparent why it should imply complete originality, or at least something close to it).

He then addresses the question of reverse engineering. He quotes a Wikipedia article concerning its legality in the EU (see here for the law text). He admonishes the ICGA for publishing RE'd R2.3.2a code (among others). Given that the published part of the code is derivative of Fruit 2.1, his argument would appear moot.

Ironically (to use his term), he parenthetically labels IPPOLIT an R3-derivative(!). Though I largely agree with this, on what basis does he make this conclusion? For instance, what standard can one invent where IPPOLIT is an R3-derivative but Rybka 1.0 Beta is not a Fruit-derivative? He seems (as typical) just to quote Rajlich about this, and thus assure us of its truth.

He then turns to the dictionary about "plagiarism", plying as if a few crumbs of praise for FL suffices (perhaps he should ask FL about this...). This doesn't address (e.g.) the fact that the ICGA Rules demand (minimally) such acknowledgment with the entry. [Riis seems aware of the LION++ case; they acknowledged Fruit in the READ_ME, and this was found inarguably to be insufficient]. And again I might refer him to the QMUL plagiarism page: Plagiarism is presenting someone else’s work as if it were your own, whether you intend to or not. This is exactly what Rajlich did in entering ICGA tournaments when the Rybka evaluation function was derivative of that of Fruit.

Riis then turns to "similarity testing", measuring functional differences in programs. This is the wrong standard. For instance, it is perfectly legitimate to try to make your program play like others. Famously, Deep Thought tuned its evaluation by matching moves from GM games. It appears there is a possibility (small, perhaps) that Fritz 11 might have done something similar with Rybka/Strelka. Furthermore, Dr. Riis seems aware of the legal issues regarding computer programs, and thus must know that they are typically protected as literary works, and not functional devices (where patent law would be more likely to apply). Thus "code comparison" (as applicable in a given case) is often of more interest than operational similarity.

Riis then concludes by asking what an "original program" is. I can't say he answers the question too well (if at all). [The word "original" has been taken by courts to apply to the "origins" -- in the case of Rybka 1.0 Beta, this is demonstrated by the evidence to have its origins in Fruit 2.1]. He then gives some quotations from Letouzey, erroneously claimed to be from 2008 (the interview is from 2005, note that "Fruit 2.0" is the latest version therein). He then promises to address the evaluation function issue in the next part.

More specific comments:

Riis first gives a graph of 11 engines with ratings over almost 20 years. He gives no source for the data. Some of it appears erroneous. I might also dispute that he gives "Rybka" a 2004 datapoint in the same line as Rybka from 2005, as the former only appeared in a few pirivate tournaments, and is not much related to the Rybka from 2005. He then zooms in on the last 7 years (the "paradigm shift"), with data from 7 engines. He claims: Focusing on the last seven years, a number of chess engines either sharply improved around the time that Fruit source code was released, or debuted after Fruit and then soared. Looking at his graph, only Fruit itself and Naum fall in the former category (with Rybka). I myself would further exclude Naum, as (the later) Naum 4 uses a re-implementation of the Rybka/Strelka evaluation function, and so I have my doubts about its transgressive Fruit-iness already in 2005. Excluding Rybka, this leaves him with zero engines that "sharply improved around the time that Fruit source code was released", so I find his phrasing notably misleading. [He might have added Zappa to the engines, BTW].

As noted above, all these graphs are irrelevant to the ICGA decision in any event, but I noticed some other errors/problems. For instance, Rybka in 2005 is plotted with a point at about 2675. I can find no list that gives this. Indeed, the Rybka datapoint is below the Naum/Fruit datapoints(!), even though Riis expands greatly on how Rybka 1.0 Beta was already superior to them at the time of first release (Dec 2005). In short, I have no idea how the Rybka datapoints for 2004 or 2005 are derived, or for that matter, from where he gets the Naum 2004/2005 numbers (e.g., Naum 2.0 was released in Sep 2006 according to CCRL, and is 2800 at 40/40 64-bit, compared to 2919 for Rybka 1.0 Beta --- Naum 2.2, gaining 100 Elo to ~2900, was apparently from July 2007).

Riis then conflates strength with originality: It had to be [original], because from first release Rybka was already far ahead of Fruit, and the gap just kept widening. This is a dubious conclusion. Fruit 2.1 was essentially a development snapshot, with much room for improvement, both in engineering (bitboards, for example) and otherwise. Letouzey himself added about 100 Elo in the next year. Riis also gives CEGT data that lists Fruit 2.1 at 2712 on a 32-bit machine, to be compared (via highlighting) with Rybka 1.0 Beta at 2868 on a 64-bit machine, presumably in support of his Rybka was as much as 150 Elo ahead of the pack on equal hardware. He is, at least, kind enough to list the 32-bit Rybka 1.0 Beta number (2816) in the same table, which shows it to be closer to 100 Elo on equal hardware -- again I find his text deliberately misleading and exaggerative.

Riis then notes that HIARCS (derogatorily labelled a "slow-climber" -- though since R3 the Rybka climbing is even slower, I might say) had "its biggest Elo jump in twelve years" (quoting the HIARCS site). He suspects it to be due to the Fruit influence. However, upon looking at his first graph, one does not see any big jump. A plausible alternative is simply that the time period between the HIARCS 9 and HIARCS 10 releases was longer than typical (Oct 2003 to Jan 2006, by my account), with there being no additional Elo/year jump from Fruit influence. If nothing else, the HIARCS blurb concerning Elo jump is version-based, while the data of Riis is year-based, and conflating the two is sloppy.

He makes a similar claim about Junior, for which his first graph does show a more notable leap. Again, though, his data is unsourced, and I cannot replicate it. I find Junior 9 to be from late 2004, while Junior 10 was released in Aug 2006 (after the Turin victory). CCRL 40/40 lists the former at 2778, and the latter at 2843, about 70 Elo over more than a year and a half. So I find the conclusion of Riis regarding Fruit influence to be (at best) difficult to justify, at least on the data given (or not given).

I think I've covered most of the next few sections above.

As noted above, Riis then gives a history of Rybka derivatives. Unsurprisingly, he fails to say how Rajlich concludes that Strelka and IPPOLIT fall into such categories. Assertion appears enough. He then notes Rajlich was (essentially) in absentia at the ICGA proceedings, failing to note that this was Rajlich's own design.

Riis then turns to plagiarism (thinking a random thankyou suffices for an ICGA entry), and assumes Hyatt speaks for the ICGA. This is bizarre. He attempts to justify it, but I might simply suggest he is too lazy to read anyone else's posts, outside his Rybka Forum bubble. Accordingly I will develop the Rajlich defense under the assumption that Hyatt speaks for the ICGA. I don't see any reason to a) listen a "Rajlich defense" (developed or not) unless VR specifies this is indeed his definitive defense, or b) debate with anyone who assumes Hyatt speaks for the ICGA.

Riis then turns to ponderhit data. As noted above, this is a improper standard. Again Riis justifies it by quoting Rajlich. Also, as in other places, he seems to assume that a lack of similarity (of moves, in this case) from a high level test implies a lack of low level similarity, when this need not be the case.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: ChessBase: A Gross Miscarriage of Justice in Computer Ch

Post by hyatt » Tue Jan 03, 2012 11:54 pm

Uly wrote:
hyatt wrote: In fact, timing is one of several CRITICAL aspects of an engine and how it performs.
But not THAT critical, the engine with the best game-playing code is still more likely to win.

Here, I run two games between Crafty 23.4 and Critter 1.4, giving Crafty 5 minutes + 2 seconds of increment, and Critter fixed exact one second per move.

In the first game Critter doesn't have problems reaching a position that Crafty doesn't know how to play.

In the second game Crafty gives up to a 2.82 score to a position it cannot win, and then goes and eventually loses it!

[White "Critter 1.4"]
[Black "Crafty 23.4"]
[Result "1-0"]

1. d4 Nf6 2. Nf3 d5 3. Bf4 e6 4. e3 Be7 5. Bd3 Nh5 6. Be5
Nc6 7. h3 Nxe5 8. dxe5 g6 9. c4 O-O 10. Nc3 c6 11. g4 Ng7
12. O-O f5 13. Qe2 Bd7 14. a3 Rc8 15. Rad1 Qa5 16. Nd4 f4
17. cxd5 cxd5 18. Bb5 Bxb5 19. Qxb5 Qxb5 20. Ndxb5 a6
21. Nd6 Bxd6 22. exd6 Rc4 23. e4 d4 24. Nb1 e5 25. Nd2 Rc6
26. Nf3 Rxd6 27. Nxe5 Re8 28. Nc4 Rc6 29. Na5 Rc2 30. Nxb7
Ne6 31. b4 Rc3 32. Kg2 Rxa3 33. Ra1 Rb3 34. Nd6 Rb8
35. Rxa6 R3xb4 36. e5 Nc5 37. Ra5 Ne6 38. Ne4 Kf8 39. Rfa1
R4b7 40. h4 h6 41. Ra6 Re7 42. Rd6 Kf7 43. Rc6 Kg7 44. Raa6
Nf8 45. h5 Rd8 46. hxg6 d3 47. Nd6 Kg8 48. Nf5 Rxe5 49. g7
Ne6 50. Rd6 Rxd6 51. Rxd6 Nxg7 52. Nxh6+ Kf8 53. Rxd3 Ke7
54. Kf3 Ne6 55. Nf5+ Kf6 56. Rd6 Kg5 57. Rb6 Re1 58. Rb5
Kf6 59. Rb4 Rc1 60. Rb6 Ke5 61. Nh4 Rc4 62. Ng6+ Kd5
63. Rb5+ Kd6 64. Ra5 Nd4+ 65. Kg2 Ne6 66. Nh4 Kd7 67. g5
Rc7 68. Kf3 Kd8 69. Kg4 Kd7 70. g6 Ke7 71. Nf5+ Kf6 72. Ra6
Ke5 73. Nd6 Ng7 74. Nf7+ Kd5 75. Kxf4 Rc2 76. Rd6+ Kc5
77. Kf3 Nf5 78. Rf6 Rc3+ 79. Ke4 Ne7 80. Ne5 Ra3 81. Nd7+
Kb5 82. g7 Ra4+ 83. Ke5 Rg4 84. Rf7 Nc6+ 85. Kf6 Rg2 86. f4
Nb4 87. f5 Rg3 88. Rf8 Nd5+ 89. Kf7 Ne7 90. f6 Nf5 91. Ne5
Kc5 92. Rd8 Kb4 93. g8=Q Rxg8 94. Rxg8 Kc5 95. Ke6 Nd4+
96. Kd7 Kd5 97. f7 Ne6 98. Nd3 Nf8+ 99. Rxf8 Kd4 100. Re8
Kxd3 101. f8=Q Kc3 102. Qa3+ Kd2 103. Rc8 Kd1 104. Qb2 Ke1
105. Rc1# 1-0

[White "Crafty 23.4"]
[Black "Critter 1.4"]
[Result "0-1"]

1. Nc3 d5 2. Nf3 e5 3. Nxe5 d4 4. Nb1 Bd6 5. Nc4 Nf6 6. e3
O-O 7. Nxd6 Qxd6 8. Be2 c5 9. d3 Nc6 10. e4 Be6 11. f4 Rfe8
12. O-O Qe7 13. Na3 Rad8 14. Bd2 h6 15. Bf3 Kh8 16. e5 Nd5
17. Nc4 b5 18. Nd6 Rxd6 19. exd6 Qxd6 20. Re1 Rd8 21. a4 b4
22. g3 Kg8 23. Rc1 Nf6 24. Qe2 Bh3 25. Kh1 Re8 26. Qf2 Ne7
27. Re2 Bd7 28. b3 Bh3 29. Rce1 a5 30. Qg1 h5 31. Re5 Be6
32. Kg2 g6 33. h3 Nd7 34. R5e2 Nf6 35. Qh2 Nf5 36. Kg1 Kg7
37. Qf2 Rh8 38. Bc1 Nd5 39. Re5 Nf6 40. Qg2 Rd8 41. Qh2 Rg8
42. Bd2 Rh8 43. Qg2 Rd8 44. Qf2 Rh8 45. Qh2 Ng4 46. Bxg4
hxg4 47. h4 Bd7 48. Bc1 Bc6 49. Bb2 Bb7 50. Kf1 Qc6
51. R1e4 Qc7 52. Re2 f6 53. Rxf5 gxf5 54. Re1 Bf3 55. Qf2
Qf7 56. Qg1 Rf8 57. Kf2 Qd7 58. Qf1 Kh6 59. Bc1 Kg6 60. Kg1
Re8 61. Kf2 Rd8 62. Bb2 Qf7 63. Kg1 Kh6 64. Bc1 Re8 65. Kf2
Rh8 66. Bb2 Rg8 67. Ba1 Rb8 68. Kg1 Qd7 69. Qf2 Kg7 70. Bb2
Rg8 71. Qd2 Re8 72. Rxe8 Qxe8 73. Kf2 Qd7 74. Qe1 Kh6
75. Bc1 Kg6 76. Bd2 Kh5 77. Kf1 Qf7 78. Bc1 Kg6 79. Qf2 Qe6
80. Qh2 Kf7 81. Qd2 Qd7 82. Bb2 Kg7 83. Qe1 Kh6 84. Bc1 Kh7
85. Qf2 Qe7 86. Qd2 Kg7 87. Qe1 Qf7 88. Kf2 Kg6 89. Bb2 Kh6
90. Qc1 Qb7 91. Qf1 Kh5 92. Bc1 Kg6 93. Bb2 Qe7 94. Qe1 Qf7
95. Kf1 Kg7 96. Ba1 Kh6 97. Kf2 Kh5 98. Qd2 Qe6 99. Bb2 Kg6
100. Bc1 Qd6 101. Kf1 Kf7 102. Bb2 Qe7 103. Qe1 Qd8
104. Qf2 Qe8 105. Qh2 Qe3 106. Qf2 Qxf2+ 107. Kxf2 Bd1
108. Ba1 Bxc2 109. Ke1 Bxb3 110. Kd2 Bxa4 111. Bb2 Bc6
112. Kc2 a4 113. Bc1 a3 114. Kd2 Ke6 115. Kc2 Be4 116. Kd2
a2 117. Bb2 Bxd3 118. Kxd3 Kd5 119. Kc2 c4 120. Ba1 d3+
121. Kd2 Ke4 122. Kd1 Ke3 123. h5 d2 124. h6 Kd3 125. h7 c3
126. Bxc3 bxc3 127. h8=Q a1=Q# 0-1

The game playing code, that is, the part of the engine that is responsible of deciding what moves are played, is so superior in Critter that it doesn't matter how it manages its time against Crafty.

And that argument is supposed to make sense to someone? Try Critter against critter 1 second to see what I was actually talking about. Timing decisions are CRUCIAL.

Post Reply