I need an API (source code) for chess or checkers to run a machine:machine tournament
As part of an artificial life experiment, I need to run a tournament where different computer programs play each other, in games like chess or checkers (I'm looking for games that rely less on brute-force and more on interesting AI algorithms). There will be no human players (so no GUI needed), and I need an API or some source code (preferably in C) so that my main tournament program can call the chess engines and have them play a game against each other and see who wins. I'd also like to be able to modify the "level" of play of each artificial player on the fly: that is, when choosing among a set of moves, or deciding how far to look ahead, I'd like to pass it a parameter "Q" (quality of player), say from 1 to 10, which tells it how good a move to generate. So, in pseudocode, something like this:
declare common chess board C;
initialize players p1, p2;
while (no winner)
{
Q=decide_quality();
move(p1,C,Q);
Q=decide_quality();
move(p2,C,Q);
}
print who won;
this may seem like a weird thing to do, and it doesn't really matter how the Q will be decided each time (this is a self-contained module of a much bigger system that will manage this). I need advice: what is the chess engine/source code set that will make it easiest to do something like this (play artificial players against each other in a loop, adjusting the "strength" of each player during a game).
Thanks,
Mike
So, the only thing that will bias the game one way or the other is this "skill" coefficient?
And you would want the system to work so that, for example, a skill 10 would beat a skill 1 95% of the time?
If the only thing that can change is a single skill variable, which will have a predictable affect on the outcome of the game, then why bother have them play a game of chess at all. You could just calculate their victory or defeat directly from their skill number.
((Bot A skill - Bot B skill) * 5) + 50 = Percentage chance that Bot A will win.
So if they both had skill 10, Bot A would have a 50% chance of winning.
If A had 10 and B had 1, A would have a 95% chance of winning.
And you would want the system to work so that, for example, a skill 10 would beat a skill 1 95% of the time?
If the only thing that can change is a single skill variable, which will have a predictable affect on the outcome of the game, then why bother have them play a game of chess at all. You could just calculate their victory or defeat directly from their skill number.
((Bot A skill - Bot B skill) * 5) + 50 = Percentage chance that Bot A will win.
So if they both had skill 10, Bot A would have a 50% chance of winning.
If A had 10 and B had 1, A would have a 95% chance of winning.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement