Tetribot - An interface for Tetrinet AIs
----------------------------------------

Contents:

tclient - contains the library which allows AI's to communicate
  to the tetribot program. This library is licenced under the LGPL

tetribot - contains the tetribot program which AI's connect
  to using the the tclient library and which subsequently
  connects to a tetrinet server. Note that much of this
  code here was copied from the gtetrinet code base and everything
  in this directory is licenced under the GPL.

Building
--------

See the individual subdirectories for further details, but you should
be able to just type make.


Using
-----

Tetribot has really only been tested against the tetrinetx server
(http://tetrinetx.sourceforge.net), and even then at this stage you
will probably notice some problems.

- Start the tetrinet server
- Start the tetribot server
- Start a gtetrinet client 
  - Tetribot will currently *not* start a game, so you will
    need to join manually using a client like gtetrinet 
	  (http://gtetrinet.sourceforge.net) and start the game from there.
- Start your AI.



What works (well at least a little bit anyway)
----------------------------------------------

- Notification of information about other players
  when game starts
- Querying of
  - own and other players' fields
  - specials accumulated
  - block dropping (type/position/orientation)
  - next block (type/orientation)
- Moving/dropping blocks
- Basic tetris functionality
- Adding of lines to other players' fields when multiple lines 
  are completed
- Collection of specials

What is seriously dodgy (ie, it might work if you're lucky!)
---------------------------------------------

- Playing consecutive games
- Endgame detection


What is not implemented yet
---------------------------
- Use of specials (using simply discards)
- Messages (retrieval/sending)
- Support for teams

Bug reports
-----------
Please send them to:

Chris Yeoh (cyeoh@samba.org)
Jeremy Kerr (jeremy@redfishsoftware.com.au)
