For the gameboard probabilities, a string would actually work better now that I think about it, though I suppose you could even increase the base unless there is already some limit on the probability (if you kept playing against MENACE, it would keep adding "stones" to that box and eventually cross 62, going over the character limit).

]]>The one recommendation I'd say is that you don't even need to store the gameboards in strings. Just store them in their own lists so you don't waste time converting in and out of base 62. ]]>

I want to know if my theory will work.

If MENACE moves first there are 305 unique rotations or reflections of the gameboard. Here is my theory.

` ``Take the current gameboard, as a matrix. X=1, O=2, Blank = 0 concatenate the numbers of the matrix such as Row1,Row2,Row3, which will yield a number (Eg: 012002010) Take that number as an expression, and store it to a temporary list Take the next rotation, concat the numbers, and append to the list Repeat for all 8 rotations or reflections. This yields a list of all the possible rotations or reflections of the gameboard, stored as a number Take the min of that list, and find its position in the list. Example, if the min is 12 (gameboard 000000012 after reflection/rotation), its location may be 5. Store the location temporarily Check if that min gameboard is in the list of gameboards already stored If it is already stored, recall the data for it If it isnt already stored, create the data for it Any spot which is a 0 stores as 5, any spot which was a 1 or 2 stores as 0 Once the data is recalled, check which location in the list the min was Based on the location, call the inverse reflection-rotation sequence for the given location Make a selection based on the recalled data.`

I know this may seem a bit complex, but if there are any questions just ask. My plan is to store 35 gameboards in a string, with the exception of STR9 and STR0. Str9 will contain 25 gameboards and STR0 will hold the base conversion string. Each gameboard will be 9 characters long, and the data will be stored in base 62 (0-9, A-Z, and a-z).

]]>