<div dir="ltr">Hello,<div><br></div><div>First off, I'd like to thank you for making Pachi open source. It's really fantastic for people interested in Go to have a strong engine available for free use.<br><div><br></div><div>I'm interested in writing Python wrappers for the various primitives in Pachi, such as boards and engines. In particular, I'm trying to make the UCT code accessible as a library, so that a user can give the UCT engine a board and ask it for a move.</div><div><br></div><div>I have a question about the "board" member of the "tree" structure, defined here:</div><div><a href="https://github.com/pasky/pachi/blob/master/uct/tree.h#L103">https://github.com/pasky/pachi/blob/master/uct/tree.h#L103</a><br></div></div><div><br></div><div>It seems that all of the UCT code assumes that this board stays in memory during the entire duration of existence of the uct engine (from engine_uct_init until uct_done), because the tree is stored inside the uct data structure.</div><div><br></div><div>What is the meaning of this particular board? Is it safe to modify the tree structure so that it instead keeps a copy of a board instead of a pointer to it (i.e. modify tree_init to copy the board argument)? If not, does this mean that with a uct engine, I must keep track of an associated board that it operates on, and ensure that it is never deallocated over the course of the engine's lifetime?</div><div><br></div><div>Any help is much appreciated. Thanks!</div><div><br></div><div>Jonathan</div></div>