[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[computer-go] Moyoman, a Go playing program



     This is to announce a new open source 
Go playing program, Moyoman.  Moyoman is 
implemented in Java, and will run on any platform 
with Java 1.4.  More information can be found at 
http://www.moyoman.org, or
http://sourceforge.net/projects/moyoman.


Purpose: The purpose of this project is to create 
a program which is  rated at least 1 Dan on the 
American Go Association scale.  A secondary
purpose is to allow the end user to examine how 
the program generates a move.


Assumptions:

1. It will take about 100 person years, or 1 million 
executable lines of code to get to amateur 1 Dan.

2. It is well understood WHAT needs to be built, 
if not necessarily HOW to build it.

3.  The main contributors to the strength of the 
program will be software developers/testers, 
AI researchers, and strong Go players without 
programming experience.


Design:

     The strategy is divided up into components 
called modules, which correspond to standard Go 
concepts such as shape, life and death, or 
the opening.  A module implements a well-defined 
interface, so that there can be multiple 
implementations of a given module type, and 
module implementations of the same type can be 
used interchangeably.

     This approach allows for experimentation since 
there can be multiple implementations of the same
module type.  The program can play against itself 
with each computer player using a different set of 
modules, so that evaluation and testing of modules
can be automated.

     Each module provides debugging information 
which can be displayed graphically. This would 
allow strong players to analyze the performance 
of the program without requiring any programming 
knowledge.


User Interface:

     Moyoman provides its own client, rather than 
using a standard protocol such as GTP.  The reason 
for this is that each module provides debugging 
information which the client displays graphically.  
This allows the end user to be able to examine the 
output of each module, and have a better understanding

of how the program makes its move.  This could be used

as a teaching tool, as well as a mechanism for
allowing 
strong Go players who are not programmers to analyze 
the output of the program and so enable the developers

to make it stronger.


Knowledge Reuse:

     There is often a tendency in projects of this
type 
to approach the problem fresh without considering the
work that has already been done.  There is a great
deal of work that has already been done on computer Go
which is in the public domain, most notably the GnuGo
program.  A life and death module could be written for
Moyoman using the life and death algorithm from GnuGo,
and one for shape, tactics, etc.  This would provide a
mechanism for bringing together much of the work that
has already been done into one place.  Where competing
approaches to the same subproblem have been taken, the
Moyoman program would allow them to be tested against
each other, or to be combined into something stronger 
than either approach used separately.  Developers of
modules using new ideas would then have a benchmark to
compare their work with.


Strength:

     Moyoman is currently very weak, even for a
computer program.  It is probably somewhere between 30
and 40 kyu in strength.  With enough contributors to
this project, it can rapidly increase in strength.


Help Wanted:

     If you are interested in contributing to this
project, please visit http://www.moyoman.org or 
http://sourceforge.net/projects/moyoman.

Currently, we need:

Software developers
Software testers
Technical writers
Web Designer
Graphic artist






		
__________________________________
Do you Yahoo!?
Yahoo! Mail is new and improved - Check it out!
http://promotions.yahoo.com/new_mail
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/