Arimaa Forum (http://arimaa.com/arimaa/forum/cgi/YaBB.cgi)
Arimaa >> General Discussion >> bot_ArimaaScoreP1 and P2
(Message started by: omar on Feb 23rd, 2006, 10:04am)

Title: bot_ArimaaScoreP1 and P2
Post by omar on Feb 23rd, 2006, 10:04am
These bots use only the Arimaa Scoring System formula to evaluate the board positions. They are very easy to beat since they push lonely rabbits forward faster then even ShallowBlue. It's going to be interesting to see how low the ratings of these bots get and if they ever win any games by goal against humans.

Title: Re: bot_ArimaaScoreP1 and P2
Post by Fritzlein on Feb 23rd, 2006, 11:12am
I can see that it would be nice to have an even easier bot than ShallowBlue to ease new players into the game.  However, having these two additional bots in the ladder is yet another argument for only requiring one win to get past each bot in the ladder.  As it is now, players who play well from their very first game might get bored and frustrated  having to win a bunch against lame opponents.  Why force them to win eight silly games against ScoreP1, ScoreP2, ShallowBlue, and Arimaalon if they are ready to move up to a challenge much earlier?  I would hate for the ladder to take away from the excitement of encountering Arimaa rather than adding to it.  Even if the two-win requirement is kept in place for the higher bots, ease up for the totally brain-dead ones.

Title: Re: bot_ArimaaScoreP1 and P2
Post by RonWeasley on Feb 23rd, 2006, 11:16am
It was interesting that they pay attention to your own advancing rabbits and block them if they can.

I wonder how many ply they need to attempt to defend their advanced rabbits or not advance them if they can't be nominally defended.

One logical strategy for them would be to play for a blocked game at their opponent's end and wait for time to run out.

Title: Re: bot_ArimaaScoreP1 and P2
Post by Ryan_Cable on Feb 23rd, 2006, 2:13pm
Wow, this really drives home how horrible the scoring function is.  Advancing a R a single step can be worth way more than a M.

It will be interesting to see where these bots equilibrate.  I think it will basically be determined by the rate of timeouts/resignations.

Title: Re: bot_ArimaaScoreP1 and P2
Post by Fritzlein on Feb 23rd, 2006, 3:16pm

on 02/23/06 at 14:13:34, Ryan_Cable wrote:
Wow, this really drives home how horrible the scoring function is.
Yes, it is pretty bad, and recall from the rating deflation thread that ArimaaScoreP1 is approximately 1000 points better than a random bot.  Unfortunately, if ArimaaScoreP1 never wins a game on the server ever, it will give us no upper bound on how high the rest of us should be on an "anchored" scale.

I think ArimaaScoreP2 might actually legitimately win against a weak human player, because it is defensive by nature, whereas ArimaaScoreP1 is blindly offensive.  Still, I don't think ArimaaScoreP2 will win as often against noobs as ShallowBlue will.

I'm also curious about head to head results between ShallowBlue and ArimaaScoreP2.  It is possible that the former will be harder for humans to beat while the latter wins more games head to head.  If that sort of intransitivity pops up, it will be another reason to avoid anchoring the rating scale with a ladder of bots of fixed rating.

Title: Re: bot_ArimaaScoreP1 and P2
Post by Ryan_Cable on Feb 23rd, 2006, 4:24pm
ArimaaScoreP2 managed to get a timeout win against kerro.  It appears that he forgot to press send on his final winning move.  I think a noob would have to be extremely dumb or sub-flash tutorial clueless about the game to loose to ArimaaScoreP2.  The bot has almost no concern for protecting or killing noble pieces.

I don’t think ShallowBlue has much chance of loosing to ArimaaScoreP2 either.  I am most interested in seeing how big a handicap we can give the ArimaaScore bots.

It would be interesting to see how good FAME maximizers did.  There would need to be something added in to get it to try to goal though.

Title: Re: bot_ArimaaScoreP1 and P2
Post by omar on Feb 25th, 2006, 10:03am
It's very easy to create and experiment with your own bots. Just download the MatchOffline kit from the download page. I contains several sample bots. You just need to edit the eval.c file to define your own method of evaluating the board position. Then just compile and test the bots against each other.

Here's what the eval.c file for ArimaaScore looks like:


/* ---------------------------------------------------
   Uses the Arimaa "Scoring System" formula for the evaluation:

 TotScore = MyScore - OppScore

 Score = R + P*(C+1)

 R = Points given for how far the players Rabbits have progressed.
     The row to which each rabbit has progressed is cubed (i.e.
     raised to the power of 3) and these values are summed up to
     determine R.  The first row is 1 and the goal row is 8.
 C = The number of Rabbits the player still has on the board.
 P = Points given for the pieces the player still has on the board.
     The value of each piece on the board is summed.

 Value of each piece is:

 1 - Rabbit
 2 - Cat
 3 - Dog
 4 - Horse
 5 - Camel
 6 - Elephant

  ---------------------------------------------------- */

int  eval( position *p )
{
 int   i;
 int   c;
 int   tot[2] = { 0, 0 };
 u64   dom;                   // bit board of dominant pieces.
 u64   non;                   // bb of non-dominant pieces

 int sC; // the C value of the score
 int sP; // the P value of the score
 int sR; // you guessed it

 for (c=0; c<2; c++)  // c = color, 0 or 1
 {
   int  e = c^1;  // enemy for convienence.

// calculate the P value of the score
   sP = 0;
   for (i=1; i<7; i++) // i loops over the types of pieces 1=rabbit .. 6=ele
     sP += bit_count( p->bd[c][i] ) * i;

// calculate the C value of the score
   sC = bit_count( p->bd[c][1] ) * 1;

// calculate the R value of the score
   sR = 0;
   for (i=0; i<8; i++) // i loops over the rows of the board
     sR += bit_count( p->bd[c][1] & adv[i+1][c] ) * (i+1)*(i+1)*(i+1);

   tot[c] = sR + sP*(sC+1);
 }

 if (p->ply & 1)
   return(tot[1] - tot[0]);

 return(tot[0] - tot[1]);
}



That's the brain of bot_ArimaaScore :-)




Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.