GNU (or GNL or public domain) Checkers AI

Discussion in 'Java' started by Luc The Perverse, Dec 12, 2005.

  1. Hi, for a christmas present for my grandpa I would like to make him a
    checkers game. He had a checkers game in Windows 3.1 that was exceptionally
    simple - he gets confused when something isn't too terribly easy.

    We've tried to find him new checkers games, but frankly they just plain
    suck.

    I can make the GUI, and everything else - but he is a very good player of
    checkers, so I will need a fairly good AI (preferably that has some
    randomness involved, as well as an adjustable level of play)

    I search google for GNU Checkers AI and got tons of results, and many many
    dead ends.

    Does someone know off hand where I could grab a good AI - or maybe even a
    full open source checkers game?

    --
    LTP
     
    Luc The Perverse, Dec 12, 2005
    #1
    1. Advertising

  2. Luc The Perverse

    zero Guest

    "Luc The Perverse" <> wrote in
    news:439cea87$0$7816$:

    > Hi, for a christmas present for my grandpa I would like to make him a
    > checkers game. He had a checkers game in Windows 3.1 that was
    > exceptionally simple - he gets confused when something isn't too
    > terribly easy.
    >
    > We've tried to find him new checkers games, but frankly they just
    > plain suck.
    >
    > I can make the GUI, and everything else - but he is a very good player
    > of checkers, so I will need a fairly good AI (preferably that has some
    > randomness involved, as well as an adjustable level of play)
    >
    > I search google for GNU Checkers AI and got tons of results, and many
    > many dead ends.
    >
    > Does someone know off hand where I could grab a good AI - or maybe
    > even a full open source checkers game?
    >


    An interesting project might be something similar to what I am doing with a
    chess game: make a program that uses AI concepts to teach itself how to
    play. The concept I'm using is simple (and I suspect for checkers it would
    be easier to implement than for chess). I define a pattern of pieces as
    any list of pieces that either 1. are on adjacent squares or 2. are
    attacking (or defending) eachother. Then, I just let the program play some
    (at first random) games, and if it wins, the patterns in the game get a
    positive score. If it loses, they get a negative score. I also take
    things into account like when the pattern occurs (early in the game has
    less inpact on the outcome than near the end), and the total mobility.
    During the game, the program analyses the patterns and thus decides what
    move it thinks is the best.

    --
    Beware the False Authority Syndrome
     
    zero, Dec 14, 2005
    #2
    1. Advertising

  3. "zero" <> wrote in message
    news:Xns972CB00F2FFBBzerothishi@195.130.132.70...
    > "Luc The Perverse" <> wrote in
    > news:439cea87$0$7816$:
    >
    >> Hi, for a christmas present for my grandpa I would like to make him a
    >> checkers game. He had a checkers game in Windows 3.1 that was
    >> exceptionally simple - he gets confused when something isn't too
    >> terribly easy.
    >>
    >> We've tried to find him new checkers games, but frankly they just
    >> plain suck.
    >>
    >> I can make the GUI, and everything else - but he is a very good player
    >> of checkers, so I will need a fairly good AI (preferably that has some
    >> randomness involved, as well as an adjustable level of play)
    >>
    >> I search google for GNU Checkers AI and got tons of results, and many
    >> many dead ends.
    >>
    >> Does someone know off hand where I could grab a good AI - or maybe
    >> even a full open source checkers game?
    >>

    >
    > An interesting project might be something similar to what I am doing with
    > a
    > chess game: make a program that uses AI concepts to teach itself how to
    > play. The concept I'm using is simple (and I suspect for checkers it
    > would
    > be easier to implement than for chess). I define a pattern of pieces as
    > any list of pieces that either 1. are on adjacent squares or 2. are
    > attacking (or defending) eachother. Then, I just let the program play
    > some
    > (at first random) games, and if it wins, the patterns in the game get a
    > positive score. If it loses, they get a negative score. I also take
    > things into account like when the pattern occurs (early in the game has
    > less inpact on the outcome than near the end), and the total mobility.
    > During the game, the program analyses the patterns and thus decides what
    > move it thinks is the best.


    That will only work if you team it against a competant opponent :) And it
    must have enough innate knowledge to force mate.

    But what I am trying to do is AVOID writing an AI.

    X-Mas is very close - I may just begin looking for an already written game
    :(

    --
    LTP

    :)
     
    Luc The Perverse, Dec 15, 2005
    #3
  4. Luc The Perverse

    David Segall Guest

    "Luc The Perverse" <> wrote:

    >Hi, for a christmas present for my grandpa I would like to make him a
    >checkers game. He had a checkers game in Windows 3.1 that was exceptionally
    >simple - he gets confused when something isn't too terribly easy.
    >
    >We've tried to find him new checkers games, but frankly they just plain
    >suck.
    >
    >I can make the GUI, and everything else - but he is a very good player of
    >checkers, so I will need a fairly good AI (preferably that has some
    >randomness involved, as well as an adjustable level of play)
    >
    >I search google for GNU Checkers AI and got tons of results, and many many
    >dead ends.
    >
    >Does someone know off hand where I could grab a good AI - or maybe even a
    >full open source checkers game?

    Sourceforge lists this one
    <http://mysite.mweb.co.za/residents/wduminy/checkers.htm>. It's C++
    not Java.
     
    David Segall, Dec 15, 2005
    #4
  5. On 2005-12-15, Luc The Perverse penned:
    > "zero" <> wrote in message
    > news:Xns972CB00F2FFBBzerothishi@195.130.132.70...
    >>
    >> An interesting project might be something similar to what I am
    >> doing with a chess game: make a program that uses AI concepts to
    >> teach itself how to play. The concept I'm using is simple (and I
    >> suspect for checkers it would be easier to implement than for
    >> chess). I define a pattern of pieces as any list of pieces that
    >> either 1. are on adjacent squares or 2. are attacking (or
    >> defending) eachother. Then, I just let the program play some (at
    >> first random) games, and if it wins, the patterns in the game get a
    >> positive score. If it loses, they get a negative score. I also
    >> take things into account like when the pattern occurs (early in the
    >> game has less inpact on the outcome than near the end), and the
    >> total mobility. During the game, the program analyses the patterns
    >> and thus decides what move it thinks is the best.

    >
    > That will only work if you team it against a competant opponent :)
    > And it must have enough innate knowledge to force mate.
    >


    Well, no, you could have two learning AIs match off against each
    other. At the start, they would be pretty bad, but they would both
    get better, much like two kids learning to play together, but much
    much faster.

    It would be interesting to see if they came up with bizarre strategies
    that would be effective against a human opponent.

    --
    monique

    Ask smart questions, get good answers:
    http://www.catb.org/~esr/faqs/smart-questions.html
     
    Monique Y. Mudama, Dec 15, 2005
    #5
  6. Luc The Perverse

    Chris Smith Guest

    Monique Y. Mudama <> wrote:
    > Well, no, you could have two learning AIs match off against each
    > other. At the start, they would be pretty bad, but they would both
    > get better, much like two kids learning to play together, but much
    > much faster.
    >
    > It would be interesting to see if they came up with bizarre strategies
    > that would be effective against a human opponent.


    In the generic sense, yes. However, it turns out checkers isn't really
    a very interesting game from a strategy standpoint. It's about tactics.
    More so even than the more typical computer chess opponent, the computer
    checkers opponent does better mainly by looking more plies ahead into
    the game. Even human checkers players do better by having the mental
    capacity to look ahead more plies.

    I doubt that your "learning" checkers programs would actually get much
    better at all, since the more complex the decision trees they build, the
    more difficult and computationally expensive it becomes for them to look
    further ahead.

    --
    www.designacourse.com
    The Easiest Way To Train Anyone... Anywhere.

    Chris Smith - Lead Software Developer/Technical Trainer
    MindIQ Corporation
     
    Chris Smith, Dec 15, 2005
    #6
  7. Luc The Perverse

    zero Guest

    "Monique Y. Mudama" <> wrote in
    news::

    > On 2005-12-15, Luc The Perverse penned:
    >> "zero" <> wrote in message
    >> news:Xns972CB00F2FFBBzerothishi@195.130.132.70...
    >>>
    >>> An interesting project might be something similar to what I am
    >>> doing with a chess game: make a program that uses AI concepts to
    >>> teach itself how to play. The concept I'm using is simple (and I
    >>> suspect for checkers it would be easier to implement than for
    >>> chess). I define a pattern of pieces as any list of pieces that
    >>> either 1. are on adjacent squares or 2. are attacking (or
    >>> defending) eachother. Then, I just let the program play some (at
    >>> first random) games, and if it wins, the patterns in the game get a
    >>> positive score. If it loses, they get a negative score. I also
    >>> take things into account like when the pattern occurs (early in the
    >>> game has less inpact on the outcome than near the end), and the
    >>> total mobility. During the game, the program analyses the patterns
    >>> and thus decides what move it thinks is the best.

    >>
    >> That will only work if you team it against a competant opponent :)
    >> And it must have enough innate knowledge to force mate.
    >>

    >
    > Well, no, you could have two learning AIs match off against each
    > other. At the start, they would be pretty bad, but they would both
    > get better, much like two kids learning to play together, but much
    > much faster.
    >
    > It would be interesting to see if they came up with bizarre strategies
    > that would be effective against a human opponent.
    >


    It seems my biggest problem is finding a good way to pick a move, taking
    both the patterns and the total mobility into account. Trial and error I
    suppose.

    --
    Beware the False Authority Syndrome
     
    zero, Dec 15, 2005
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Charles A. Lackman
    Replies:
    1
    Views:
    1,448
    smith
    Dec 8, 2004
  2. SpamProof
    Replies:
    0
    Views:
    644
    SpamProof
    Oct 21, 2003
  3. Peter

    1 day gnu, whole life gnu?

    Peter, Jan 10, 2005, in forum: Java
    Replies:
    3
    Views:
    364
    John C. Bollinger
    Jan 10, 2005
  4. Peter
    Replies:
    17
    Views:
    639
    Chris Smith
    Jan 13, 2005
  5. Markus Elfring
    Replies:
    2
    Views:
    394
    Markus Elfring
    Feb 23, 2005
Loading...

Share This Page