Random Move: 124, 180, 108, 132, 366, 160, 108, 72, 198, 108 =>155.6
Good Move: 310, 344, 882, 138, 273, 1172, 150, 518, 128, 246 => 416.1
The Random Move opponent simply just picks a random, valid, move each turn.
Good Move picks a winning move if there is one move that makes 3 in a row, and blocks the opponent if there is a chance for them to play one piece to get 3 in a row. Otherwise it just picks a random, valid, move.
The setup was as follows:
Function nodes | +, -, *, /, IfThenElse, =, >, <, And, Or, MakeMove |
Terminal nodes | 0, 1, 2, Ephemeral Constant (0-10), SQ_00...SQ_22 |
Crossover probability | 90% |
Reproduction probability | 9% |
Mutation probability | 1% |
Mutation depth | 2 |
Max tree size (number of nodes) | 100 |
Max tree depth | 30 |
Of course, this was more teaching the AI how to play as opposed to letting it evolve from scratch, so the true test would be with co-evolution. However, I needed to do some more groundwork to get that up and running in my new environment...
No comments:
Post a Comment