On Wed, Feb 14, 2007 at 10:57:38PM +0100, ?ukasz Lew wrote:
> Basically I wanted to implement a board in a hope that more people get
> attracted to Computer Go. But now this is more or less accomplished.
> So I decided to implement some kind of set canonical algorithms.
> But only those most common, I do not intend to make another GnuGo :)
> 
> I just started UCT, as majority voted for it. Maybe patterns will come next.
> If You have something to propose, just go ahead :)

I have a question about your philosophy. Do you mean us - the users of
your library - to take the current version of the code, and start
modifying it to our needs? Or do you want us to link with the library,
so that we can upgrade to a later version without branching?

I am asking because I would need a bit different playout routine. I
could easily hack the library to do what I want, but that would in
effect be a branch, and lead to maintenance problems later if/when you
release a better version.

I could also inherit from your classes, and override what I need. That
would probably require a new header file, or something.

Or I could abstract my needs into a more general interface, submit that
as a patch, hope you accept it, and then use that.

To get down to earth, I would like to look at the board at the end of
each playout, calculate something more than just win/loss, and pass that
info back to who ever called playout. One way to do that would be to
pass a function pointer and a (void?) pointer to playout, and have it
call back the function with the board, winner, and the void pointer. If
that sounds more like C than C++, it is because I am a C programmer. If
some other C++ idiom could do the same thing, all the better.

Also, you have implemented the mercy rule in the playout code. If the
library should be used without duplicating the code, this might be
better left as a settable parameter.

Like I said, I could easily write my own playout. But then I'd have to
modify the gtp code to call that, and probably change a bit more here
and there. In the end I would have forked your code, and when you
release the next version, I would have to merge the changes in, and/or
decide to go our separate ways. 

Perhaps I am worrying too much at such early state. I am just about
considering to start my own project. But I'd like to do the right thing
from the beginning. 

What do you think?

   Heikki



-- 
Heikki Levanto   "In Murphy We Turst"     heikki (at) lsd (dot) dk

_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to