                                     sdlCC

                               (Chinese Checkers)

                                       by

                                Jonathan Atkins

                               <jcatki@home.com>
                              http://jonatkins.org

                              2012 River Run Trail
                              Fort Wayne IN, 46825
                                      USA
                                      

                                     ABOUT

This is a Chinese Checkers game, it has 5 AI players, and can easily support
    more for any hackers out there.  it uses SDL and runs great in plain X11.
    It has some fun effects to liven things up a bit.  All graphics were made
    in the GIMP, or at leat converted by it.  I made them using GIMP and
    the Video Toaster's Lightwave3D...years ago.  Multiplayer is supported
    on the same computer, although a net player would not be hard to add
    given the plugin player feature.
    

                                  INSTALLATION

Required:

    SDL-1.2.0 or above.
    png enabled SDL_image-1.2.0 or above.

Tested with:

    Tools:
        gcc-3.0.2
        automake-1.5
        autoconf-2.52
        libtool-1.4.2
    Libraries:
        SDL-1.2.3 (CVS)
        SDL_image-1.2.0 (CVS)

To Make:

    Type "./configure" read INSTALL for the general usage if you want.
    (if you have trouble with configuring, try running autogen.sh first)

    Type "make", this will make sdlCC and the plugin players in the players dir.


To Install:

    Type "make install" this will install sdlCC and the data & player files.


Size:

    To get the size of the output , need to know you $prefix from configure.
    Then you can run:

        du -sb $prefix/bin/sdlCC $prefix/lib/sdlCC/

    so if prefix=/usr/local:

        du -sb /usr/local/bin/sdlCC /usr/local/lib/sdlCC/
        40960   /usr/local/bin/sdlCC
        897024  /usr/local/lib/sdlCC
        937984  TOTAL (bytes)
        (output from my system, for reference only)
		NOTE: the ls command WILL mostly show smaller sizes!!!


                                    RUNNING

To run make sure the directory sdlCC is in is contained in your PATH.
    Or call sdlCC with it's full path.

On loading each player, you will see output on the console indicating any
    reasons for failures.  You should have no problems...

If sdlCC is run without any arguments the graphical version will run.

If sdlCC is run with up to 6 numbers it will run with each player indexed in the
    order loaded up, human also being number 0.  The order on the commandline
    is the order of the players in the game.
    This method of invoking the game allows gaming on any VT or ANSI terminal!
    It doesn't use a GUI then.


                                  HOW TO PLAY

First select who is playing.  The human player is YOU (and friends/enemies!)
using the mouse.  All the AI players are named, and you may mix and match.
at least 2 players are required to start a game.  A selection of None, means no
player, duh!  Players are outlined below.

Well, the object is to get all your marbles to the opposite side.
You may move one space at a time, or jump multiple marbles (any color) in a row.
If someone is blocking your goal area you can still win by getting in the row
next to your goal.  A forfeit occurs when a player cannot move.

The Hints system helps beginners play.  Experts may switch it off of coure.

If you are in a hurry and/or the animation is no fun anymore turn it off.


                                     NOTES

To learn the basics of coding a player in C, see the README file in the
    players directory.

Players are loaded from $prefix/lib/sdlCC/players.
    The default prefix is /usr/local

The only combination I've seen to date that results in a forfeit of a fully
    automated game is all players are Sliders, except player 5 who's Jumper.
    This means jumper made three bad moves and therefore it had nowhere it
    knew it could move to.
    Randy is of coure capable of stupidity like this as well.
    Your players can make bad moves and recover...check the status and
    error numbers passed in!  They get 3 chances, or so!


                                    PLAYERS

Know your enemys!

"Sloth" : only know about moving 1 space at a time
"Jim"   : knows what Sloth knows, plus can jump once at a time.
"Jon"   : a full player...not too tough if you know how to play
"Randy" : basically Jon but with a 1 in 1000 chance of taking a dumb(?) move
"Mike"  : a slightly tweaked Jon, sometimes ends up beating Jon ;)

??????? : add your own player!  it's easy for any C coder to do!

Note on the Human player:

    The human player is special :)
    The human player is not a plugin, due to is multitalented nature and access
    requirements to the screen.
    Thus the Human player is ALWAYS available in the GUI.


                                    SOURCES

PNGs:
    All done by me.

WAVs:
    All done by me. (yes, that's my voice :)

MODs:
    lemon.mod
                    ftp://ftp.wustl.edu/pub/aminet/mods/chip/lemon.lha
    Kakofonia.mod
                    ftp://ftp.wustl.edu/pub/aminet/mods/chip/Kakofonia.lha
    DesertDreamVol.mod
                    ftp://ftp.wustl.edu/pub/aminet/mods/chip/DesertDreamVol.lha
    TeadropInAPot.mod
                    ftp://ftp.wustl.edu/pub/aminet/mods/chip/TeadropInAPot.lha
    Chipgene.mod
                    ftp://ftp.wustl.edu/pub/aminet/mods/chip/Chipgene.lha


                                  TODOS & BUGS

Don't bother me about bugs, there are many, and there are none.  Most bugs are
really TODOS.
TODOS:
    The shadows aren't implemented.
    Evil commandline interface.
    Tournament mode stuff.
    Help button does nothing, but you should know how to play.
    Zoom button does nothing, it's always 1x no matter what you press.
    You cannot change each players color for fun right now.
    Still uses busy waiting instead of signal delays, makes the CPU meter look
        crazy, but it's really just idle time..."nice -19" if it bothers you.
    Doesn't play well in anything but x11 (no dga!)
    Port to win32 and mac perhaps (right now it works on Linux/UNIX)


                                    CONTACT

If you wish to praise the efforts put into this program or just wish to learn
something more about it please write me (Jon Atkins) at the following email:

                                jcatki@home.com
