i plan to try writing an ai for a strategic game, and i've pretty much narrowed 
the candidates down to either checkers or 

reversi. i would prefer to tackle the easier game, so can anybody tell me which 
one is easier to program decently? (or maybe 

i'm missing a good candidate - basically all i want is a game that's less 
trivial than tictactoe). by "decently" i mean that it 

should make reasonably skillful moves in a reasonable amount of time, but speed 
and playing strength take a backseat to the 

simplicity and well-motivatedness of the algorithm. (this isn't supposed to be 
a professional-caliber ai ... it will be more like a 

kid's science-fair project). 

more particularly, can anybody give me some high-level guidance about 
evaluation functions for either game? (no spoilers 

please - i want this to be really my own project). as far as reversi goes, my 
ideas on this matter are based mostly on the 

"basic diagram" in goro hasegawa's "how to win at othello". (i have a library 
hold on norvig's "paradigms of ai programming", 

which devotes an entire chapter to reversi, but the book hasn't come in yet). 
as for checkers, i was thinking about a weighted 

sum of three basic measurements ... if "you" and "i" are the players, then i 
would measure

*) (my relative mobility)          = (the number of moves i have) - (the number 
of moves you have)
*) (my relative king presence)  = (the number of kings i have)  - (the number 
of kings you have)
*) (my relative pawn presence) = (the number of pawns i have) - (the number of 
pawns you have)

indeed, i've even wondered whether a viable evaluation could be based on 
relative mobility alone - that would, after all, work 

perfectly if there were no limit to the search horizon - but on the other hand 
i'm also prepared to find out that any viable 

evaluation needs to be more sophisticated. i wouldn't be surprised, for 
example, if the approach i'm suggesting could work 

but only if the weights in the sum are adjusted according to the number of 
moves made or some other criterion. 

anyway, that should suffice to give you an idea of where i'm at with this. 
thanks if you can help

peace
stm 
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to