The FEN caharacters WinBoard uses for Knightmate are:
M for the non-royal King (.k.a. Man or Commoner) that replaces the Knights
K for the Royal Knight (depicted as Unicorn)
So the initial setup would be
[d] rmbqkbmr/pppppppp/8/8/8/8/PPPPPPPP/RMBQKBMR w
The Royal Knight castles like a normal King, so the differences with normal Chess from the engine perspective are tiny. (In converting Joker I did encounter n unexpeced problem, though: Joker's move generator first looks for pinned pieces, and then generates moves along the pin ray separately. But, unlike a Knight, a Commoner can have moves along the pin ray!)
If your eval recognizes certain combinations of material as draw (which Joker doesn't), you would have to make changes there too: KRK is a draw! (Just like KBK and KMK.) I have no idea what that does for the Rook value. (Never tested it!)
The Knightmate Challenge 2010
Moderators: hgm, Rebel, chrisw
-
- Posts: 27815
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
-
- Posts: 792
- Joined: Wed Jul 19, 2006 9:58 am
Re: The Knightmate Challenge 2010
*np answered my own Q
-
- Posts: 792
- Joined: Wed Jul 19, 2006 9:58 am
Re: The Knightmate Challenge 2010
Jabba's playing its first testgame vs Fmax as I write
Bizarre looking!!!
But castling has worked, as have the knight moves.
If it passes two test games, I'll load up the file for download.
I've redone the psqt and valued the King (or M) as 200cp.
Richard
Bizarre looking!!!
But castling has worked, as have the knight moves.
If it passes two test games, I'll load up the file for download.
I've redone the psqt and valued the King (or M) as 200cp.
Richard
-
- Posts: 792
- Joined: Wed Jul 19, 2006 9:58 am
-
- Posts: 1385
- Joined: Fri Jul 14, 2006 7:56 am
- Location: London, England
- Full name: Jim Ablett
Re: The Knightmate Challenge 2010
Great to see a nice new Knightmate engine.Richard Allbert wrote:It seems ok, file available here
http://jabbachess.blogspot.com/
Thanks!!
Richard
Thanks Richard.
Jim.
-
- Posts: 792
- Joined: Wed Jul 19, 2006 9:58 am
Re: The Knightmate Challenge 2010
No problem,
It only took a few minutes.
It only took a few minutes.
-
- Posts: 27815
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: The Knightmate Challenge 2010
The original tourney has finished. Gerbil did finally end above the 20% more handicapped Faile. Vanilla Chess did do much better than its handicap assignment had foreseen. It really seems that the strength of Vanilla Chess deteriorates much faster at faster TC than that of the other engines, and at these long TC a time-odds factor of 2 for it would perhaps have been fairer.
Tomorrow I will start gauntlets for Jabba, to add it to the tourney. First I should figure out a reasonable time-odds for it. I suppose it will be stronger than Lime. Perhaps I should assign if a time-odds factor of 8.
Tomorrow I will start gauntlets for Jabba, to add it to the tourney. First I should figure out a reasonable time-odds for it. I suppose it will be stronger than Lime. Perhaps I should assign if a time-odds factor of 8.
Code: Select all
Cross table, sorted by score percentage, Buchholz, SB
Jok Lim Ger Fai Van Dab Fai CCC MSK Fim
1. Joker KM / 16 ### 101 011 ==1 111 111 110 111 111 111
### 01= 111 011 111 111 011 111 111 111 86% 46.5 (1341.0, 1082.8)
2. Lime KM 62 / 7 010 ### 101 111 1=0 011 =11 110 110 111
10= ### 100 111 111 111 111 111 111 111 79% 42.5 (1365.0, 984.5)
3. Gerbil-KM 0.2 / 4 100 010 ### =00 =11 100 111 11= 111 111
000 011 ### =11 111 111 1=0 101 =11 111 69% 37.0 (1398.0, 802.0)
4. Faile KM 1.4.4 / 5 ==0 000 =11 ### 1=1 111 011 ==1 111 =11
100 000 =00 ### 1=1 =11 011 =1= 011 111 63% 34.0 (1416.0, 723.0)
5. Vanilla Knightmate 2.6g 000 0=1 =00 0=0 ### 101 001 011 010 111
000 000 000 0=0 ### 101 111 101 111 111 46% 25.0 (1470.0, 464.3)
6. Dabbabba 2.62 wb / 4 000 100 011 000 010 ### 1=1 001 101 111
000 000 000 =00 010 ### 011 110 111 111 44% 24.0 (1476.0, 437.8)
7. Fairy-Max 4.8v / 4 001 =00 000 100 110 0=0 ### =11 101 111
100 000 0=1 100 000 100 ### 011 110 1=1 44% 23.5 (1479.0, 490.5)
8. CCCP new / 4 000 001 00= ==0 100 110 =00 ### 11= 111
000 000 010 =0= 010 001 100 ### =1= 111 40% 21.5 (1491.0, 401.3)
9. MSKCP 1.4.4 000 001 000 000 101 010 010 00= ### 000
000 000 =00 100 000 000 001 =0= ### 111 22% 12.0 (1548.0, 260.3)
10. Fimbulwinter KM 5.00 000 000 000 =00 000 000 000 000 111 ###
000 000 000 000 000 000 0=0 000 000 ### 7% 4.0 (1596.0, 64.8)
-
- Posts: 792
- Joined: Wed Jul 19, 2006 9:58 am
Re: The Knightmate Challenge 2010
I think it will be weaker!!
I have just uploaded a new version
http://jabbachess.fileave.com/Jabba 1.0 KM.zip
Correcting an eval bug for KM.
Thanks
Richard
I have just uploaded a new version
http://jabbachess.fileave.com/Jabba 1.0 KM.zip
Correcting an eval bug for KM.
Thanks
Richard
-
- Posts: 27815
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: The Knightmate Challenge 2010
One question:
Does Jabba understand time controls like 4:30. I have not tested this yet, but Lime did not, which is why I ask. Because of the time odds, it will have to play some games with non-integer minutes...
Does Jabba understand time controls like 4:30. I have not tested this yet, but Lime did not, which is why I ask. Because of the time odds, it will have to play some games with non-integer minutes...
-
- Posts: 792
- Joined: Wed Jul 19, 2006 9:58 am
Re: The Knightmate Challenge 2010
It has the code below... so should do.
Let me know if you have problems.
Richard
Code: Select all
//convert the level time control string to integers
void cEngine::xboardlevel(string str, int pos)
{
int val1=0,val2=0,val3=0,val4=0;
str.erase(0, pos);
//deal with time in "0:10" format
if(str.find(':')!=-1)
{
string space = " ";
str.replace(str.find(':'),1,space);
istringstream iss(str);
iss >> val1 >> val2 >> val3 >> val4;
val2 = val2*60*1000 + val3*1000;
val3 = val4*1000;
}
else
{
istringstream iss(str);
iss >> val1 >> val2 >> val3;
val2 = val2 * 60 * 1000;
val3 = val3 * 1000;
}
//moves per session
tree.timer.setmovestogo(val1,cW);
tree.timer.setmovestogo(val1,cB);
tree.timer.setmodemps(val1);
options.moves = val1;
//black and white time for session
tree.timer.setsessiontime(val2,cW);
tree.timer.setsessiontime(val2,cB);
//increment
tree.timer.setinc(val3,cW);
tree.timer.setinc(val3,cB);
//reset depth limiter
tree.timer.setdepth(maxply);
tree.timer.setdepthlimit(false);
}
Richard