./global needs to be given a rack of: ??????? as the opponents rack. this is for the *next* ply, ie your opponents reply. MAX_PLAYS <<= #words in dict * squares * 2 (what is VM size??) need to keep an array of 15x15x7 to record plays - tuple of (x,y,#tiles) - each array entry represents 1 board shape. Keep best move for each shape for next ply evaluation, as well as best moves (ie may be >1 move per 'shape') (keep all bingoes) ---------------- it's my play: generate all plays with my rack *OR* take a handful of plays selected by human for comparison for each play: get confidence factor from user (or determine automatically using heuristic, from game score and competition score) make the play. note my score. call opp_eval with the new board, and set 'my rack' to remaining tiles, 'opps rack' to "???????". note opp's most probably score. return it. (or return cumfreq table and adjust confidence factor afterwards?) (subtract opps score from our score to back it up - ie minimax) if time allows: for each opps reply *shape* in conjunction with #plays of each shape and average value of those plays, and using our remining tiles plus 7-n "?"s, work out our most likely reply score. add to backed-up score