The Knightmate Challenge 2010

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27809
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

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!)
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

*np answered my own Q
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

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
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

It seems ok, file available here

http://jabbachess.blogspot.com/

Thanks!!
Richard
User avatar
Jim Ablett
Posts: 1384
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: The Knightmate Challenge 2010

Post by Jim Ablett »

Richard Allbert wrote:It seems ok, file available here

http://jabbachess.blogspot.com/

Thanks!!
Richard
Great to see a nice new Knightmate engine.
Thanks Richard.

Jim.
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

No problem,

It only took a few minutes.

:)
User avatar
hgm
Posts: 27809
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

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.

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)
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

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
User avatar
hgm
Posts: 27809
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: The Knightmate Challenge 2010

Post by hgm »

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...
Richard Allbert
Posts: 792
Joined: Wed Jul 19, 2006 9:58 am

Re: The Knightmate Challenge 2010

Post by Richard Allbert »

It has the code below... so should do.

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);
}
Let me know if you have problems.

Richard