

                             Welcome in GO MOKU
                        
                                     by

                               Blazej Stompel

1. Introduction

   GO MOKU, also known as 5-in-a-row or Make-5, is a seemingly simple, game 
   board similar to Tic-Tac-Toe. It is played on a 20 by 20 square board, 
   with each player taking turns in placing noughts or crosses, trying to,
   obviously, line up 5 of them in any direction. 

2. Features of the program

    * good looking, rendered graphics
        - the title screen was rendered using 3d Studio 3.0
        - the game board was modelled using Moray and than raytraced
          with POV 3.0

    * simple, user friendly interface

    * sophisticated (..?) AI system with 3 levels of difficulty:

         - easy:   for beginners, but still tricky
                   uses simplest method of finding the best move at the
                   given moment, doesn't utilize min/max

         - medium: for advanced players, incorporates min-max search with
                   alpha/beta cut-off with sophisticated (again ..?)
                   evaluation function to find the best move amongst the
                   hundreds of possible ones. Since there are very many
                   possible moves at each time, the algorithm tries to
                   analise only those that are worth checking.
                   The algorithm on this level performs only 2-level
                   min/max search.

         - hard:   for the best players, with 4-level min/max
  ___________________________________________________________________________

  NOTE to AI people:

                 with 4-level search, the algorithm slows down enourmously,
                 the reason, obviously, being the amount of moves to analise.
                 I think that my find_moves function is pretty much
                 optimized, however, it still needs improvements.
                 So, if you feel that you know how to handle the problem,
                 I would greatly appreciate any help. It was my first project
                 involving any AI, and I definitely need more experience.
                 In advance, thanks for help ! 
   __________________________________________________________________________                     


     * hint function to help in tough situations 

     * undo function to retreat from a bad move ( up to 5 moves back )

     * a set of separate timers for player and computer

     * a bar showing the progress of computer's "thinking"


3. About the program, from the programming point of view.

   The program started as a pure AI project, without any fancy graphics,
   only with a schematic text mode interface. After it earned me a grade :)
   I developed the graphic shell. The source is in procedural and,
   very simple, object C++. The routines dealing with screen output were
   written in 286 assembly. I did all the graphics by my self, using mix of
   commercial and shareware tools. There are still, probably, few bugs in the
   code, so please let me know if you find any.
   Also, if you would like to take a look at the source code, let me know
   by e-mail, and I will send it. But beware, it's scary ;)

4. How to contact the author

   only by e-mail since I move a lot

    * bstompe@comp.uark.edu
    * astompel@silesia.pik-net.pl

    I welcome any comments regarding GO MOKU and game programming in general,
    also, if you liked the game, please drop a note, this would really help
    my self-esteem  :)


