Comments/Ratings for a Single Item



Of course it can be derived from algorithms. Tal and Petrosjan are also nothing but algorithms. Exceedingly complex and unpublished algorithms, perhaps, but algorithms nonetheless. Your argument on classical music is unconvincing. What computers cannot do now, might be common place in a decade. Thirty years ago one could have said exactly the same about computers lacking the creativity to play Chess at grand-master level. If Tal and Petrosjan subdued their opponents by theoretically unsound moves, they were only able to do it because they were much better than their opponents. This is quite normal in Chess. Speculating on that your opponent will not see the refutation but in stead will fall into a trap you set is a very efficient way to speed up winning a game against a weaker player. And that might look brilliant to one who is not able to recognize the trap either. Computers can be very easily programmed to play that way. But it will get them slaughtered by their peers, of course. It is easy to look brilliant and creative when you are _much_ better than your opponents. But when you are hardly better, it calls for realism. This has nothing to do with computer vs human algorithms. It is just the computer's bad luck that they always meet their match, in terms of search depth. So they cannot afford fancy-looking strategies that can be exposed as unsound at their own level. When your traps are exposed and backfire, they suddenly don't look so brilliant anymore. If you win by sacrificing a Queen everyone is in awe. But when you lose by it, they shrug and say, ' he blundered his Queen away again. Will this guy never learn?'...
Tal was great because he understood the psychology of Chess. Chess is a draw if there is perfect play on both sides. So, in Chess, the goal is to make your opponent make a mistake. Tal was very good at making moves that, while not the best from a theoretical standpoint, would put his opponent off-balance, resulting in them making mistakes.
I like Capablanca chess because it's tactically very sharp, a lot more than FIDE Chess. H.J.Murray, in his 'History of Chess', complained about how 20th century chess has become too strategic. I feel Capablanca chess, by having so much power on the board, recreates the spirit of 19th century romantic chess, where tactics are king and sacrifices are very common.
The truth is that chess programs have, historically, had a hard time being creative because they simply cannot calculate whether a pawn storm, or a positional exchance sacrifice, or a pawn sacrifice for dynamic compensation, will lead to a concrete gain. It lies beyond the horizon. So that's why computers have refrained from being creative, and this is why Kasparov deemed Fritz to be a lousy program. Still today, human grandmasters play better chess than Rybka, et al., but it's not certain that it will always remain so. Today, orthochess is becoming more and more dependent on preparation. Soon it can be defined as a form of information science, with the addition of an impressive calculating ability. This is a bad development, and it's true that Capablanca chess, and many other variants, represent a way out of this anti-creative and unadventurous devlopment. Today's chess is strongly dependent on encyclopaedic knowledgeability, which follows from the computerization and the scientific study of chess. A a consequence the world elite becomes younger and younger. The average age in today's elite is below 25. At this low age people are capable of stuffing their brains with knowledge, especially about openings. Undoubtedly, the average age will continue to decrease. I think that this is the expression of a form of neurosis that has taken root In today's collectivity. It expresses itself in a wish to develop into a perfect machine. An 'anal' attitude takes the expression of a wish to be in total control. The ideal would be to turn oneself into an automaton that needn't be creative, only applying its own knowledge and exacting calculative ability on a well-known concrete position. Comparatively, in Anglo-Saxon checkers they randomly decide the three first half-moves before tournament play begins, by the use of so called ballot cards. In history, chess was most often played with long dice. People had a different view on life back then, and were more acceptant toward chance events. Unlike today, they weren't always in for total control. I think that most chessplayers should begin to loosen up their rigid standpoint toward chess, and perhaps life overall. 'Chess holds its master in its own bonds, shackling the mind and brain so that the inner freedom of the very strongest must suffer' (Albert Einstein) Mats


I would like to do this with Joker80, because I cannot be sure that ChassV uses correct piece values, which might affect its opinion on some opening lines very much. I am still thinking how I should modify Joker to get the information we want. One way to do it might be like this: In stead of narrowing the search window by delimiting it with the scores of the best two variations found by either side, it should discount the scores by a margin of, say, 50 centiPawn, and only narrow the window if that discounted score is better than the current window setting. Then a single reply on an alternative move, which would make the score come out, say, 30 cP lower, would not immediately be considered a refutattion of that alternative move. In stead the search of replies would continue until either one was found that refuted the move by a margin of more than 50 cP, or all moves would be search to make it sure what the best reply is, so we would get an exact score for the alternative move. (Which would the ly closer to the score of the best move than 50 cP.) The margin sets how much score we are willing to sacrifice to create variation so that the opponent cannot use a well-prepared variation against us. (i.e. this depends on how much weaker in terms of a centi-Pawn score odds we estimate the difference between a well-prepared opponent and someone who would have to find the moves behind the board.) I guess this means the margin should decrease as we get deeper into the game, based on how much branching we already created: If at move 6 we have already selected a 1-out-of-100 path, the preparation of the opponent on this particular position will necessarily on average be 100 times worse than his preparation from the standard opening, so throwing in more variation to make him totally unprepared will not bring much further gain. So we should have an idea of how common the current position will be. We can obtain this 'rareness factor' by multiplying the move choices along the branch. If on ply 1 we had 3 playable moves (within the score margin), on ply 3 we had 2 and on ply 5 we have 4 moves, we are in a 1:3*2*4 = 1:24 position, and could shrink the margins accoringly. When we search the opening position through iterative deepening, the previous iteration will tell us how many playable moves there are, before searching each of them at the new, increased depth. This is a bit complicated, though. So perhaps it would be better to simply do an iteratively deepened search where the search window will be kept open in every internal tree node to at least the margin around the root score of the previous iteration. That would mean that all positions in the tree within +/- margin from the previous root score would acquire exact scores. Only outside this window, positions would get upper or lower-bound scores, telling us that they should be considered refuted by one side or the other. The main question is how to present any output from this process. Perhaps for every node in the tree that receives an exact score we should simply print out the entire branch leading up to that node, together with the score. I guess we would be happy if we have, say 10,000 lines, which should be easily doable. That would on average be a 1:100 choice for white as well as black, diluting any possile preparation efforts of the opponent 100-fold I guess that only after we have such an opening tree we could check if there are problems with the 'on average' notion, i.e. if the tree is robust in the sense that it could never be reduced by opponent move choice to a tree that is much smaller than the average.

Very interesting discussion! I've been away too long ... First of all, thanks go out to H. G. for adding code to make ChessV compatible with WinBoard. I'm rolling these terrific improvements into the main code base as well as fixing the problems that resulted in version 0.9.x being so much worse than 0.9. Update will be released this weekend (with full source code.) Secondly, thanks go out to Sam for putting on this tournament. I look forward to the sequel, especially since my next-generation engine will be ready for Schoolbook Chess play very shortly, and with a playing strength that will beat up on ChessV like a body-builder beating up on a cripple :) Regarding inclusion of Zillions-of-Games, since it is a commercial product, I don't see any problem... If you've actually paid money for it, don't you have a right to use it? Also, H. G., you mentioned that ChessV might not evaluate the pieces correctly. This is, of course, true :) But you can change ChessV's piece evaluations (without re-compiling the source code.) You use a save-game (SGF) file. To the extent that there's different opinions about the relative values of the pieces, it would be very interesting to try the alternate values and re-run Sam's opening move analysis and see if it makes any significant difference. Also, regarding the Schoolbook chess castling rule, I refer to this rule as 'flexible' castling. That's the name Fergus gave it because the name 'free' castling was already used by Aberg in his Capablanca variant in which not only can the king travel as far as it likes, but the rook can choose any square that the king has passed over... (I don't personally like the free castling rule, but ChessV supports both, and some other variations, as described in the file extensability.doc.) Will post an update soon, as soon as ChessV 0.9.4 is ready!
In terms of making an opening book, while it would be nice to do so with refined values of the pieces (as Greg pointed out, this can be done in ChessV 0.9.0, and my Schoolbook Zillions preset even has a ChessV save game file which one can easily modify with a text editor to tweak the value of the pieces), I’ve already done over half of the work to get a basic 15-node or so opening book for Schoolbook out there so two deterministic Chess engines can play each other a Schoolbook “showdown” and not just play the same game 15 times over.
It’s not a perfect opening book, but I’ve reviewed the openings by hand and I don’t see anything that doesn’t look reasonable. We can always make a better opening book later on, and even play some very fine chess with our imperfect opening book. Indeed, some very excellent Chess was made in the 19th century when openings like the Queen’s pawn opening and the Sicilian defense were considered inferior and very rarely used.
In terms of changing the Joker80 engine to choose from a greater range of possible moves in the opening, I think this is a good idea. I’ve always liked Zillions’ ability to make the move done from a given position more random and I also think it will make Joker80 a stronger Chess player.
I’m very glad to see some serious work being done to computer programs that play Chess and Chess variants competitively. Capablanca/Carrera/Bird Chess, in particular, results in some very sharp and tactical games that computers play very well, and it’s relatively easy to tweak an engine that can play FIDE Chess to play 10x8 Chess. There are dozens of possible opening positions for the pieces, and opening positions we thought in the mid-2000s were no good (positions with first-move mating threats and what not) may very well be OK, but one open question is whether there is any measurable White advantage to a setup where he can threaten mate on the first move.
One thing I would love to see is to have a Chess engine that can be told “Make a reasonable opening library for this particular opening setup”, run the program on a high-end machine for a could of days, and have it output a 1000-node or 2000-node opening book for the setup in question. It won’t be a perfect opening book, but it will be one we can use to research things like seeing how much of an edge White has with a given setup.

OK, this is the Joker80 analysis of Schoolbook array. I let it run for 12 ply from the opening, printing every position with an exact score searched to a depth of 10 ply, keeping the window open from -0.10 to + 0.20 (white POV) on all searches of 10 ply or deeper. Both the 11-ply and 12-ply search came up with c2-c4 as best move. At 11 ply e2-e3 was deemed as good, but it dropped a lot in the 12ply search. But f2-f4 did exactly the opposite. The following table gives the move path, followed by the score/depth of the position after these moves. Because I searched 12 ply, and printed everything with d>=10, it did not only print the white moves but also the black replies. elow I did list some replies to the best white moves. c2c4 0.10/11 (0.05/10) f2f4 0.05/11 (0.00/10) g2g4 0.04/11 (0.02/10) c2c3 0.04/11 (0.04/10) e2e3 0.01/11 (0.00/10) e2e4 0.00/11 (0.05/10) f2f3 0.00/11 (0.01/10) h1i3 0.00/11 (-0.00/10) g2g3 0.00/11 (-0.02/10) d2d4 0.00/11 (-0.03/10) h2h3 -0.00/11 (0.00/10) c1b3 -0.01/11 (-0.01/10) h1g3 -0.01/11 (-0.01/10) d2d3 -0.03/11 (-0.04/10) e1d3 -0.03/11 (-0.05/10) h2h4 -0.03/11 (-0.06/10) c1d3 -0.04/11 (-0.07/10) a2a4 -0.06/11 (-0.09/10) i1h3 -0.09/11 (-0.06/10) j2j3 -0.09/11 c2c4 c7c5: -0.10/10 c2c4 g7g6: -0.11/10 c2c4 c7c6: -0.14/10 c2c4 g7g5: -0.14/10 c2c4 h8i6: -0.15/10 c2c4 e7e5: -0.16/10 c2c4 f7f6: -0.16/10 c2c4 e8d6: -0.16/10 c2c4 e7e6: -0.18/10 c2c4 i8h6: -0.18/10 c2c4 0.10/11 12 10 2582729 104628430 ? c2c4 c7c5 f2f3 i8h6 c1b3 d8c7 h1g3 e2e4 c7c6: 0.00/10 e2e4 c7c5: -0.04/10 e2e4 e8f6: -0.09/10 e2e4 e7e5: -0.10/10 e2e4 h7h6: -0.10/10 e2e4 f7f6: -0.13/10 e2e4 e7e6: -0.14/10 e2e4 g7g6: -0.15/10 e2e4 g7g5: -0.16/10 e2e4 h8i6: -0.18/10 e2e4 0.00/11 11 4 25428 83877288 ? e2e4 f7f6 d2d4 c7c6 f2f3 d8c7 i1h3 e8i4 12 0 426852 1429007351 ? e2e4 c7c6 i1h3 e8d6 f2f3 f8e8 d2d4 h7h6 e4e5 f2f4 f7f6: -0.05/10 f2f4 c7c6: -0.07/10 f2f4 f7f5: -0.08/10 f2f4 h7h6: -0.10/10 f2f4 d7d5: -0.11/10 f2f4 e8d6: -0.11/10 f2f4 h8i6: -0.13/10 f2f4 d7d6: -0.13/10 f2f4 e7e6: -0.14/10 f2f4 c8b6: -0.14/10 f2f4 g7g6: -0.15/10 f2f4 j7j5: -0.16/10 f2f4 b7b6: -0.16/10 f2f4 c8d6: -0.17/10 f2f4 i7i5: -0.19/10 f2f4 0.05/11 12 5 692665 -1980185374 ? f2f4 f7f6 e2e3 g7g5 h1g3 c7c6 f4f5 d8c7 d1g4 g2g4 c7c5: -0.04/10 g2g4 f7f6: -0.05/10 g2g4 g7g6: -0.07/10 g2g4 h7h6: -0.08/10 g2g4 e7e5: -0.08/10 g2g4 d7d5: -0.08/10 g2g4 c7c6: -0.08/10 g2g4 g7g5: -0.09/10 g2g4 e8d6: -0.10/10 g2g4 c8b6: -0.13/10 g2g4 h8g6: -0.14/10 g2g4 i8h6: -0.14/10 g2g4 h8i6: -0.15/10 g2g4 d7d6: -0.16/10 g2g4 b7b5: -0.16/10 g2g4 i7i6: -0.17/10 g2g4 a7a5: -0.18/10 g2g4 e7e6: -0.18/10 g2g4 j7j6: -0.19/10 g2g4 0.04/11 c2c3 c7c6: -0.04/10 c2c3 c7c5: -0.04/10 c2c3 g7g5: -0.07/10 c2c3 g7g6: -0.07/10 c2c3 e7e6: -0.10/10 c2c3 c8b6: -0.14/10 c2c3 h8i6: -0.15/10 c2c3 i8h6: -0.15/10 c2c3 h7h5: -0.17/10 c2c3 h8g6: -0.18/10 c2c3 e7e5: -0.18/10 c2c3 d7d5: -0.18/10 c2c3 0.04/11
Arguably, it is a drawback of [a Capablanca setup*], for instance, that an
ambitious player must needs devote himself to opening studies in
order to achieve success. It is a very complex board situation and hard
studies would be very rewarding. But opening studies is also an
immense tedium. Seirawan Chess, due to its drop method, can never
become a highly theoretical game. This is, I think, a great advantage.
One needn't bother much about opening theory, it's only to sit down
and play. Instead one can devote time to the study of opening
principles and tactical themes.
Interestingly, Namik Zade employed [a Capablanca setup*] and combined it with
the pawn randomization which I invented for Chess256. This is interesting
as it implies a thorough kill of theory. His program can be downloaded here:
Capablanca Fun Games
The zrf which uses pawn randomization is called 'The Shuffle-Pawns.zrf'
Please study this. I don't think the [a Capablanca setup*] is quite proper for pawn
randomization because the bishops will often be able to capture the
rooks immediately. It works, but is slightly unattractive. However,
should the Schoolbook setup be used, then an immediate capture is
never possible. Comparatively, in Chess256 white can never achieve
a clear advantage no matter how the pawns are positioned. One must
establish that the same is true for the Capablanca setup that one
chooses for the pawn randomization method. Of course, Namik's
program can also be used as pawn randomizer for any Capablanca
piece setup.
/Mats
*edited for site policy
I’ll have my list finished up by early next week: Muller’s list also helps a lot with starting up an opening book.
Mats: The reason why we’re studying openings is so computer programs can make reasonable opening moves. It looks like you haven’t been reading this thread. We use a basic opening book to minimize the issues caused when a deterministic computer program plays a given Capablanca setup more than once.
As for human players, an opening book gives a player a pretty good idea of how to start the game. Avoiding “over-analyzed” opening books is easy in Capa setups; there are 720 different opening setups with the rooks in the corner, bishops on opposite colors, and the king on the F file. Of those, 18 have symmetry with the knights and the bishops, and the bishops closer to the center file than the knights.
There simply is no need to implement your idea to advance some pawns one square randomly, and you yourself have pointed out it causes problems in, say, the Embassy setup (RNBQKMABNR or if you insist on having the King in the F file, RNBAMKQBNR), or even your own Teutonic setup (RNBQAKMBNR). Can we please keep the discussion here on-topic without coming up with untested blue-sky ideas?
Sam, for a computer to make reasonable opening moves in orthochess it is sufficient to allow it to randomly choose between 1.c4, 1.d4, 1.e4 and 1.Nf3. It's equally simple in Capablanca variants. It is completely meaningless to allow an engine to run overnight to determine which first move is the best. Many moves are equally good until grandmasters after years of play and analysis have arrived at a conclusion.
The ramification of variations is so vast and one can't draw any conclusions about first opening moves this way. There are deep strategies involved, concerning endgame properties, for instance. In the Sicilian defence, black's minority attack and the pressure on the backward white c-pawn will create a slight advantage for black if the endgame is reached. A computer cannot draw such conclusions and determine in favour of 1...c5 after a night's analysis. The ramification in Capablanca variants is even greater. This effort of computer analysis is meaningless. If you want to establish the foundational openings, then move any centre pawn and a knight in any reasonable combination for both parties. Then you will have perhaps 30-40 good openings to choose from.
However, randomized pawns is not 'untested blue sky ideas' while I have tested it in Chess256, and Zade has implemented it for [a Capablanca chess variant*]. Obviously, the randomized pawn configuration, in itself, lessens the deterministic aspect of computer play. Moreover, as the pawn development is already partly established, a computer can immediately choose between good piece moves and good pawn moves. Otherwise, with all pawns on the second rank, it has almost only good pawn moves at his disposal. I never suggested Embassy Chess or Teutonic Chess, but this solution would probably work for those as well. /Mats *edited for site policy

Sam: The most obvious difference is that Joker80 likes c2-c4 quite a lot, while ChessV thinks it a pretty poor move. Mats: I think this technique could be useful to reveal flaws in the array that would cause an unusually large white bias. E.g. essential weaknesses due to undefended Pawns or critical mate threats. To create an opening book, a better approach would probably be to play a few hundred thousand ultra-fast games, with an engine that randomizes through a root bias of 10 centiPawn or so. This should provide Monte-carlo sampling of the opening tree, fully taking into account strategic effects like those you mention. With 40 moves/10 sec one could do 120 games/hour on a single CPU. So a quad would make you about 500 games/hr or 12,000 games/day. Keep that up for a month, and a very nice data set would emerge.
Sam: The most obvious difference is that Joker80 likes c2-c4 quite a lot, while ChessV thinks it a pretty poor move.
Well, lets look at the ChessV 0.9.0 + Human tweaking opening book 1. c3, 1. Nd3, 1. e4, and 1. f4; I will probably do black responses to 1. Ng3 tonight.
Here is the opening book I have so far:
1. c3 Ng6
1. c3 e5
1. c3 e6
1. Nd3 f5
1. Nd3 Nd6
1. Nd3 Ng6
1. e4 e5
1. e4 Ng6
1. e4 d5
1. f4 f5
1. f4 Nd6
1. f4 c6
And compare it with Joker80’s 12-ply opening book, where it thinks White’s five best moves are: 1. e4 (PV +.05 pawns), 1. c4 (+.05 pawns), 1. c3 (PV +.04 pawns), 1. g4 (PV +.02 pawns), and 1. f3 (PV +.01 pawns). Observe that there are no Knight openings in Joker’s list, and that it thinks 1. f3 (+.01 PV) is better than 1. f4 (+.00 PV, or equality). In addition, Joker80 likes 1. g4 more than ChessV does.
So, there are some significant differences between the openings Joker80 likes and the openings ChessV likes. Both opening books look reasonable; Capa variants have a somewhat higher branching factor than FIDE chess (after White and Black move once in FIDE chess, there are 400 possible positions; in the Schoolbook Capa setup, that number is 784), so I would not be surprised if there are more reasonable openings than in FIDE Chess.
I retract my statement that there is no value in setups where we randomly advance pawns for both sides one square (if we advance White’s c pawn, we advance Black’s c pawn, for example). In FIDE chess, it increases the number of openings by 256; with Capa arrays, it increases the number of openings by 1024 and computer analysis can tell us if certain pawn advancements make for usable opening setups.
Again, I will finish up my ChessV 0.9.0 analysis of the Schoolbook opening setup over the next few days and should have a final opening list up soon.
40 moves in 10 seconds is a little too fast for Joker80. So, I've opten for 40 moves in 30 seconds; I might be able to get away with 40 moves in 15 seconds. Joker80 randomizes its move enough that it's worth it to have it run a few thousands games against itself; a version of Joker80 that essentially randomizes its first two moves would be nice too (or I can have the script just give the engines one of the 784 setups where the first two moves are randomized).
Here is the script that does this:
#!/bin/sh
A=1
while : ; do
winboard.exe -cp -fcp joker80.exe -scp joker80.exe \
-boardSize middling \
-variant capablanca -lpf schoolbook.fen -tc 0:30 \
-mps 40 \
-autosave -sgf game-hour-${A}.pgn -mg 60
A=$(( $A + 1 ))
done
Here is the schoolbook.fen file:
rqnbakbncr/pppppppppp/10/10/10/10/PPPPPPPPPP/RQNBAKBNCR w KQkq - 0 1

With the version of WinBoard I'm using, there is no option for animation (and no animation in the game) nor an option for turning off the GUI (-noGUI doesn't work, nor does /noGUI, and the help files don't seem to have anything). I'm using Winboard 4.3.15m.
Which version of Winboard are you using? It's in the GUI under Help->about.

There is a new version (4.4.0) obtainable from WinBoard forum: http://www.open-aurec.com/wbforum/viewtopic.php?f=19&t=50387 This new version supports the -noGUI option, which supresses updating of board and clocks completely. The Animate Moving checkbox should be in the Options -> General... dialog. I guess I misremembered a little; I looked it up and Joker80 was playing 15 sec/game against 24 min/game for ArcBishop. But at that speed (which should be equivalent to 40 moves / 10 sec, as the average 10x8 blitz game takes about 60 moves), it was able to win games without forfeiting on time. This was on a 2.4GHz Core 2 Duo. Since we want self-play with absolutely equal engines, it should also be possible to make a version of the engine that does this without GUI. ChessV has such an option to play itself. Both sides would use the same hash table, which is equivalent to having a ponder-on tournament with 100% guarantee for a ponder hit, but only using a single CPU! The first 30 moves of each game could then be saved together with the result in binary format, to build a book from it later.
- Gave each side 40 seconds to do 40 moves (too slow for what we're doing)
- Disabled pondering with -xponder
#!/bin/sh SECS=10 while : ; do winboard.exe -noGUI -xanimate -cp -fcp joker80.exe -scp joker80.exe \ -boardSize middling -xponder \ -variant capablanca -lpf schoolbook.fen -tc 0:${SECS} -mps 40 \ -autosave -sgf game-${SECS}sec-40moves-$(date +%s).pgn -mg 10 sleep 1 doneWhile there still is the occasional game won on time, most of the time the game ends in checkmate or draws by repetition.
Note that I also hacked backend.c to remove the popup that tells you the match results at the end of a match.
Sometimes, one of the sides loses on time. Since it is a little more complicated to adjudicate such a game to see who had the better position when the flag fell, I have simply discarded any game which does not end with a draw or a checkmate (Joker80, unlike TJChess10x8, never resigns).
Once I did this, here is the win/loss/draw statistics I have so far for Joker80 playing Schoolbook Chess against itself with a 40 moves in 10 seconds time control:
e4 Win: 51.6556% Loss: 38.4106% draw 9.93377% Total 151
f4 Win: 51.4019% Loss: 41.1215% draw 7.47664% Total 107
f3 Win: 52.381% Loss: 33.3333% draw 14.2857% Total 63
c4 Win: 44.2623% Loss: 40.9836% draw 14.7541% Total 61
c3 Win: 38.8889% Loss: 50% draw 11.1111% Total 18
h3 Win: 100% Loss: 0% draw 0% Total 2
Ni3 Win: 100% Loss: 0% draw 0% Total 1
Total Win: 50.3722% Loss: 38.9578% draw 10.67% Total 403
#!/bin/sh awk '{ l=$0; sub(/\[.*\]/,'',l); # Get opening move if(match(l,/^1\./)) { sub(/{.*/,'',l); sub(/^1\.[ \t]*/,'',l); sub(/[ ]+.*$/,'',l); opening=l } # Tally up wins and losses if(match(l,/Checkmate/) || match(l,/mates/) || match(l,/resign/)) { sub(/{.*}[ ]*/,'',l); if(match(l,/0\-1/)) { loss[opening]++; } else if(match(l,/1\-0/)) { win[opening]++; } opening = 'invalid' } # Tally up draws if(match(l,/1\/2\-1\/2/)) { draw[opening]++ opening = 'invalid' } } END { for(a in win) { print 'W Opening ' a ' won ' win[a] ' times.' } for(a in loss) { print 'L Opening ' a ' lost ' loss[a] ' times.' } for(a in draw) { print 'D Opening ' a ' drew ' draw[a] ' times.' } }' | awk '# Tally total results by opening {result = $1; opening = $3; times = $5; tally[opening] = tally[opening] ' ' result ' ' times; total[opening] += times; } END { for(o in tally) { print o ' ' tally[o] ' T ' total[o] } }' | awk '# Make percentage win/los/draw { opening = $1 for(a in z) { delete z[a]; } for(a=2;a<=NF;a++) { if(a % 2 == 0) { d = $a } else { z[d] = $a } } if(z['T'] > 0) { t = z['T']; if(t != 0) { w = z['W'] / t; l = z['L'] / t; d = z['D'] / t; w *= 100; l *= 100; d *= 100; tt += z['T']; tw += z['W']; tl += z['L']; td += z['D']; } print opening ' Win: ' w '% Loss: ' l '% draw ' d '% Total ' t } } END { if(tt != 0) { tw = tw / tt; tw *= 100; tl = tl / tt; tl *= 100; td = td / tt; td *= 100; } print 'Total Win: ' tw '% Loss: ' tl '% draw ' td '% Total ' tt }'
Here is the final ChessV-0.9.0-generated list (with human tweaking) of Schoolbook openings:
1. c3 Ng6
1. c3 e5
1. c3 e6
1. Nd3 f5
1. Nd3 Nd6
1. Nd3 Ng6
1. e4 e5
1. e4 Ng6
1. e4 d5
1. f4 f5
1. f4 Nd6
1. f4 c6
1. Ng3 Ng6
1. Ng3 e5
1. Ng3 c6
Next: Run 100 40-moves-in-10-second games for each of these openings to see which ones make Joker80 have more wins as white at this time control. Should I point out, at this point, that Joker80’s wins as White decrease when I increase its time control?
Timeline: There is no timeline. Whenever I feel like doing it.
Note that games lost on time do not count; only games with a definite resolution were counted in these statistics (if we played 100 games and 10 were lost on time, I only counted the other 90):
Nd3-Nd6 57%
Nd3-Ng6 56%
Nd3-f5 55%
e4-Ng6 57%
e4-d5 52%
e4-e5 51%
f4-Nd6 60%
f4-f5 52%
f4-c6 47%
c3-e5 58%
c3-Ng6 47%
c3-e6 46%
Ng3-e5 49%
Ng3-Ng6 48%
Ng3-c6 45%
Here, the first column is the first two moves played; the second column is the percent figure as described above. I’ve grouped all of whites moved together in the above list, and have sorted them based on White’s winning percentage if Black makes his best reply.
Anyway, that was fun but this should be my last work on Schoolbook until 2010, when I start preparing for the Schoolbook 2010 tournament. I have a DNS server that I want to finish up that I’ve been neglecting this last week.
Win: 47.2527% Loss: 35.1648% draw 17.5824% score 56.044%
So, then, looking at the games I saw Black wasn't defending as well as he should, so I ran 100 games with three times the time: 40 moves in 30 seconds. I got considerably different results:
Win: 40.8602% Loss: 45.1613% draw 13.9785% score 47.8495%
('score' above is White wins + Draws/2)
Here, we see Black defends a lot better and White doesn't win nearly as often.
Point being, on my system (Core 2 dual, 1.5 ghz), the 40-moves-in-10-seconds games does not give us enough time to play well enough to determine whether a given opening is any good. 1. e4 d5 2. exd5 Nb6 is a fine defense for Black, but we need more time for each game to see that.
As an aside, one of the 30-seconds-for-40-moves games has this pretty checkmate:
1. e4 d5 2. exd5 Nb6 3. Ne2 Nxd5 4. f3 c6 5. c4 Nb6 6. c5 Nd5 7. Bc2 g6 8. Cj3 Ad7 9. Qd1 h5 10. Nhg3 Ke8 11. Bf2 Nb4 12. Ba4 b5 13. cxb6 axb6 14. O-O Ni6 15. d4 Qd6 16. Ne4 Qe6 17. Ci5 j6 18. Nf4 Qc4 19. b3 Qa6 20. Axb4 jxi5 21. Bxc6 Kf8 22. Bxd7 Nh4 23. g3 Cj6 24. Axa6 Cxj2 25. Nxg6+ fxg6 26. gxh4 Cj1# 0-1
25 comments displayed
Permalink to the exact comments currently displayed.