gen_tree genera l'albero, ovvero dato uno schema di tris anche parzialmente giocato, produce tutti gli schemi possibili fino a riempire tutte le caselle, tenendo conto che comincia a giocare 'o' e poi si alternano. gen_tree parte dalla radice (primo schema) e genera la lista di figli (altri schemi derivati dalla radice), che diventano nodi con eventuali altri figli. Es
o x o
o x x
- - -
gioca 'o' che può mettersi nella prima colonna terza riga (nodo ) o nella seconda colonna terza riga (altro nodo) ecc.
Poi gioca x che può mettersi in ciascuno degli spazi rimanenti. Ottieni così tutte le combinazioni.
Alla fine restituisci la radice dell'albero.