Getting started
Coding one's own player is pretty straightforward : You have to make
your own class - say MyPlayer.java, and this class should
implement the interface Player. See the source of RandomPlayer and
NaivePlayer class for more details.
You will see that the function getMove(Board b) in your player. All
      the information about the current status of the game will be
      stored in the instance of the Board class passed to this
      function. You can use the generatePossibleMoves() of Board class
      to get all the possible valid moves.
Programming intelligent players
At first sight, programming intelligent players in the game may seem
      to be a difficult task. However, once you are thoroughly
      familier with the source code, it won't be that difficult. Here
      are a few tips to program your intelligent player
- Using simple heuristic functions: Have a look at the
      NaivePlayer class. It used a simple heuristic function to choose
      the next move. You can try tweaking with the parameters used in
      the heruristic function. A few points are easy to observe :
	  
	  -  Making a move in the center of the board is better than
      making a move near the edges or the corner.
	  
-  If an opponent makes a move near the edge/corner, it is
      easier to capture that piece.
	  
-  A move should not be made at a place where the "mobility"
      of the piece is reduced - i.e. the number of free adjacent
      positions is less for that piece.   
	  
 These are a few simple rules that can be used in the heuristic
      function. There can be many more parameters which can be used to
      make a good heuristic function.
 
- Using tree search: This is the most common method used in
Game parogramming, and almost all expert computer game playing
programs use this technique. The most widely used method is of MinMax
search. Check out the resources page
for links on Game programming.
The problem with Go (and EasyGo as well) is the high branching factor
- that is, the number of possible moves at any given instance. Because
of this, searching the whole tree is not possible - some pruning
technique inevitably needs to be employed. I leave it for you to
figure out how to achieve this - atleast you should have something to
do on your part !