If playing strength is not the only factor, how would you tune an engine to make it play "attractive" chess? In this case, attractive is defined as something that is easily be understood and interpreted by chess players without any engine knowledge. Therefore, say improving an QS search in a long search wouldn't be counted as attractive because it's too difficult to understand without deep knowledge.
I want to code some chess personality, for example, intentionally playing like an idiot. Any idea? How should it be implemented? How hard to implement? How to test the changes?
Interesting chess styles?
Moderator: Ras
-
kinderchocolate
- Posts: 454
- Joined: Mon Nov 01, 2010 6:55 am
- Full name: Ted Wong
-
Isaac
- Posts: 265
- Joined: Sat Feb 22, 2014 8:37 pm
Re: Interesting chess styles?
I have a few ideas but no idea on the programming part.
1)Make an engine try to trade its bishops for knights.
2)Trade its knights for bishops.
3)Make an engine that sacrifies either a knight or bishop or even rook against some pawn that cover the ennemy king, and then play the rest of the game normally.
1)Make an engine try to trade its bishops for knights.
2)Trade its knights for bishops.
3)Make an engine that sacrifies either a knight or bishop or even rook against some pawn that cover the ennemy king, and then play the rest of the game normally.
-
Ferdy
- Posts: 4853
- Joined: Sun Aug 10, 2008 3:15 pm
- Location: Philippines
Re: Interesting chess styles?
One method used by a commercial program was to use multi pv say 20 then go depth 1, this is very quick then you can select between 1 to 20 available moves depending on your target strength. If you want a little stronger then use go depth 2, still multipv is set to 20 or more. To test select some engine with real elo based on CCRL or CEGT for example.kinderchocolate wrote:If playing strength is not the only factor, how would you tune an engine to make it play "attractive" chess? In this case, attractive is defined as something that is easily be understood and interpreted by chess players without any engine knowledge. Therefore, say improving an QS search in a long search wouldn't be counted as attractive because it's too difficult to understand without deep knowledge.
I want to code some chess personality, for example, intentionally playing like an idiot. Any idea? How should it be implemented? How hard to implement? How to test the changes?
So you have one engine using multipv 20 at depth 1, another using multipv 19 at depth 1, and so on. This would require a lot of games of course. Limiting depth is a reasonable method to control the strength of an engine.
A more advance method is perhaps by calculating the complexity of a position, and based on this complexity measure you will have a choice which move to play depending on the user strength.
Sample that I have tried to explore in the past.
http://www.talkchess.com/forum/viewtopi ... complexity