Well, I thought I might as well do it now. So I just pushed a patch to the repository that does support analysis. (No periodic updates, however. And no exclusion of moves.)hgm wrote:But unfortunately there is no support for analysis mode in Fairy-Max. ... Perhaps I should add this, one of these days.
Fairy-Max 4.8_O released
Moderators: hgm, Rebel, chrisw
-
- Posts: 27895
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Fairy-Max 4.8_O released
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Fairy-Max 4.8_O released
Thank you. Will grab it tonight when I get home.hgm wrote:Well, I thought I might as well do it now. So I just pushed a patch to the repository that does support analysis. (No periodic updates, however. And no exclusion of moves.)hgm wrote:But unfortunately there is no support for analysis mode in Fairy-Max. ... Perhaps I should add this, one of these days.
-
- Posts: 27895
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Fairy-Max 4.8_O released
Actually move exclusion works too, now!
(Except that in Seirawan Chess it would not distinguish between moves with and without gating, and exclude/include all such moves together. But that seems only a minor defect.)
(Except that in Seirawan Chess it would not distinguish between moves with and without gating, and exclude/include all such moves together. But that seems only a minor defect.)
-
- Posts: 730
- Joined: Fri Oct 19, 2012 2:23 am
Re: Fairy-Max 4.8_O released
Awesome! And you are absolutely right. Fairy-max is a lot of fun to play against.
-
- Posts: 27895
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Fairy-Max 4.8_O released
Note I still had to fix a bug there. XBoard occasionally sends several in/exclude commands at once, when you click 'tail' in the exclusion header to in or exclude all non-listed moves. It then sends an 'exclude all', followed by 'include' commands for every enabled (+) move in the list, or the other way around.
Problem was that if the engine reads the first ('include all') command, the library input handler for stdin apparenly puts all the following commands in the input buffer, where the routine that polls for input cannot see them. So it would always resume analyzing after having treated only one command, (and not the command that arrived, but the first one from the buffer). By specifying unbuffered input this problem is now solved.
Problem was that if the engine reads the first ('include all') command, the library input handler for stdin apparenly puts all the following commands in the input buffer, where the routine that polls for input cannot see them. So it would always resume analyzing after having treated only one command, (and not the command that arrived, but the first one from the buffer). By specifying unbuffered input this problem is now solved.
-
- Posts: 27895
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Fairy-Max 4.8_O released
Another small improvement: to remove the game history (which Fairy-Max stores in the hash table) after undo, to prevent the position(s) you just moved back from will be seen as a rep draw, Fairy-Max no longer clears the entire hash table, but only the positions from the game history. This allows you to take back moves in analysis without losing the result of the position you just analyzed, thus being able to propagate its score backwards along the game.
I also equiped it with in-search rep-draw detection. I am not sure if that works properly, however; when I set up a position from which it can force a perpetual check, it does eventually find the draw in the search (which before was impossible, and draws would be seen only when it could force a return to a position that already occurred in the game-history). But it takes a suspiciously high depth before the score suddenly drops to 0. But perhaps that is normal, and caused by screening of the repetition by hash cutoffs.
[d]1kr2brq/6n1/8/8/8/4Q3/4PPP1/5K2 w - - 0 1
I also equiped it with in-search rep-draw detection. I am not sure if that works properly, however; when I set up a position from which it can force a perpetual check, it does eventually find the draw in the search (which before was impossible, and draws would be seen only when it could force a return to a position that already occurred in the game-history). But it takes a suspiciously high depth before the score suddenly drops to 0. But perhaps that is normal, and caused by screening of the repetition by hash cutoffs.
[d]1kr2brq/6n1/8/8/8/4Q3/4PPP1/5K2 w - - 0 1
Code: Select all
20 -0.04 30.1M 0:27.52 e3b6 b8a8 b6a6 a8b8 a6b6
19 -0.02 23.9M 0:22.18 e3b6 b8a8 b6a6 a8b8 a6b6
18 -0.02 21.1M 0:19.88 e3b6 b8a8 b6a6 a8b8 a6b6
17 -0.10 19.4M 0:18.42 e3b6 b8a8 b6a6 a8b8 a6b6
16 -0.08 18.3M 0:17.47 e3b6 b8a8 b6a6 a8b8 a6b6
15 -0.06 17.8M 0:16.96 e3b6 b8a8 b6a6 a8b8 a6b6
14 -0.04 17.4M 0:16.65 e3b6 b8a8 b6a6 a8b8 a6b6
13 -0.02 17.1M 0:16.41 e3b6 b8a8 b6a6 a8b8 a6b6
12 -11.52 11.4M 0:10.95 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 b5c4 c7b6 c4b3 b6c7
11 -11.51 4.38M 0:04.18 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 b5c4 c7b6 c4b3 b6a7
10 -11.49 1.04M 0:01.00 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 b5c4 c7d7 c4b5 d7c7
9 -11.48 365608 0:00.37 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 b5c4 c7d7 c4a4 d7c7
8 -11.52 93606 0:00.11 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 b5c4 c7d7 c4a4 c8c6 a4a7 c6c7 a7a4 c7c6
7 -11.55 27044 0:00.04 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 b5c4 c7b7 c4e4 b7c7
6 -11.56 8775 0:00.01 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 b5c4 c7d7 c4a4 c8c6 e2e4
5 -11.64 4849 0:00.01 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 b5c4 c7d7 c4d4
4 -11.64 2024 0:00.00 e3b6 b8a8 b6a6 a8b8 a6b5 b8c7 e2e4
3 -11.63 675 0:00.00 e3b6 b8a8 b6a6 a8b8 e2e4
2 -11.85 374 0:00.00 e3b6 b8a8 g2g4
2 -12.00 177 0:00.00 e3g3 c8c7 e2e4
2 -12.24 82 0:00.00 e3f3 f8d6
2 -12.25 27 0:00.00 g2g4 f8d6
1 -12.06 11 0:00.00 g2g4
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Fairy-Max 4.8_O released
HG - just want to take moment and thank you for latest changes. I have recompiled the latest FairyMax source and renamed it "micromax" (fairymax does not quite do it justice).
25Kb size, sees over 1M nps in normal chess and close to 1M nps in Gothic Chess and the other variants. I also compiled "N.E.G. 1.2", renamed it "Speedy" and the exe size is down to 8kb. Both of these are for the Mac, would you mind if make the available to the public via dropbox? Speedy is perfect for teaching children how to play chess ( or not how to play the chess- the main thing is they can learn the moves and still have chance to win).
Mike
25Kb size, sees over 1M nps in normal chess and close to 1M nps in Gothic Chess and the other variants. I also compiled "N.E.G. 1.2", renamed it "Speedy" and the exe size is down to 8kb. Both of these are for the Mac, would you mind if make the available to the public via dropbox? Speedy is perfect for teaching children how to play chess ( or not how to play the chess- the main thing is they can learn the moves and still have chance to win).
Mike
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Fairy-Max 4.8_O released
also downloaded Joker and running it on the Mac under wine - I can see it is much stronger engine than Fairy Max.
-
- Posts: 27895
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Fairy-Max 4.8_O released
Nice logo, but the black-on-black text below the name is totally unreadable on my display. Perhaps you should make that text blue, to at least provide some color-contrast.
And yes, you can do with it whatever you want; Fairy-Max is public domain. I don't know if I did put an explicit licence specification in the N.E.G. source, but that should be public domain too.
The main weakness of N.E.G. that jumps out once you know it (and really makes the impression of being below its average abilities) is its total naivity against (soft) pins. People quickly learn to exploit that by pinning pieces against a Queen, and then offering them some cheap material, like Pawn or minor, to lure them away and collect that Queen.
Perhaps I will fix that one day, statically identifying X-ray attacks on unprotected or more-valuable piece, and penalizing all off-ray moves with the blocking piece by the value of the pin-root, or the value difference with the pinner. Then its play would make a more balanced impression, and indeed be a very good sparring partner for novices.
And yes, you can do with it whatever you want; Fairy-Max is public domain. I don't know if I did put an explicit licence specification in the N.E.G. source, but that should be public domain too.
The main weakness of N.E.G. that jumps out once you know it (and really makes the impression of being below its average abilities) is its total naivity against (soft) pins. People quickly learn to exploit that by pinning pieces against a Queen, and then offering them some cheap material, like Pawn or minor, to lure them away and collect that Queen.
Perhaps I will fix that one day, statically identifying X-ray attacks on unprotected or more-valuable piece, and penalizing all off-ray moves with the blocking piece by the value of the pin-root, or the value difference with the pinner. Then its play would make a more balanced impression, and indeed be a very good sparring partner for novices.