Results 1 to 7 of 7
  1. #1
    pas
    Member
    pas is offline

    Posts
    63

    Basic algorithms used for pp bots?

    Hi, was wondering if anyone could fill me in some algorithms you guys use for your bots.
    The only kinda thing I've actually implemented and have quite a bit of experience with is minimax with alpha beta pruning but I know A* exists and how it works to an extent.
    I was wondering if the bots used here use anything else or just some variant of the two?
    Thanks,

    -soontobebik

    - - - Updated - - -

    and what is the easiest puzzle (on pp) for a noob to begin with coding on. Right now I have my own mouse movement library and am using code from the OpenForager to detect the client and puzzle.

    I also was wondering where I can find things like the puzzle images to make life easier such as finding the width and height of a little piece (I'm sure this has been asked before but I searched on google for a while and couldn't find a directory with actual viewable images).

    - - - Updated - - -

    Oh yeah and I'm using c++.

  2. #2
    Senior Member
    TheRigger is offline

    Posts
    640
    I used a depth first search for a majority of my auto bots (bilge, rigs, nav)
    I used a single-threaded adversarial search (there are many options) for TD
    I used random placement algorithm to solve SW boards
    I used random walker for patch (though obviously it's not optimal)
    I used strange black magics for many of them to improve their performance, but that shouldn't be your primary concern

    Using C++ is nice for performance but hard to do image detection with; be careful

    Edit: Puzzle images can be found in the Roaming directory under Three Rings Design i think
    Edit: Bilging is the easiest puzzle to begin coding; I coded the entire bot in about a week
    Last edited by TheRigger; 10-25-2016 at 03:52 PM.

  3. #3
    pas
    Member
    pas is offline

    Posts
    63
    Exactly the post I was looking for. Thanks and I was wondering how your TD bot compares with DFS
    Quote Originally Posted by TheRigger View Post
    I used a depth first search for a majority of my auto bots (bilge, rigs, nav)
    I used a single-threaded adversarial search (there are many options) for TD
    I used random placement algorithm to solve SW boards
    I used random walker for patch (though obviously it's not optimal)
    I used strange black magics for many of them to improve their performance, but that shouldn't be your primary concern

    Using C++ is nice for performance but hard to do image detection with; be careful

    Edit: Puzzle images can be found in the Roaming directory under Three Rings Design i think
    Edit: Bilging is the easiest puzzle to begin coding; I coded the entire bot in about a week
    Last edited by Sobo; 10-26-2016 at 12:32 AM.

  4. #4
    Senior Member
    TheRigger is offline

    Posts
    640
    That person's doesn't use DFS; it uses alpha-beta pruning with minimax search
    DFS for TD is equivalent to Minimax with no pruning
    Mine is better than minimax with no pruning, yes

    to be honest I have no idea who this jonls person is (I don't think it's any major coder on this site)
    to be fair their implementation would make it pretty easy to multithread using lazy SMP
    it might still be worse than a single-threaded search with quiescence though
    then again, not quite sure how much lazy SMP would help since TD has such a low branching factor at the root

  5. #5
    Dan
    Bot Coder
    Dan is offline

    Posts
    216
    Quote Originally Posted by TheRigger View Post
    I used strange black magics for many of them to improve their performance
    aka: Try this, and hopefully it 'works'.

    - - - Updated - - -

    Hi Pas, also if you are looking into implementing A*, the puzzles that incorporate this are; Patching(Simple, can use standard MHD), with exploration/expansion after solving and, Alchemy can be solved with some bastard child of DFS and A*.

  6. #6
    pas
    Member
    pas is offline

    Posts
    63
    Quote Originally Posted by TheRigger View Post
    That person's doesn't use DFS; it uses alpha-beta pruning with minimax search
    DFS for TD is equivalent to Minimax with no pruning
    Mine is better than minimax with no pruning, yes

    to be honest I have no idea who this jonls person is (I don't think it's any major coder on this site)
    to be fair their implementation would make it pretty easy to multithread using lazy SMP
    it might still be worse than a single-threaded search with quiescence though
    then again, not quite sure how much lazy SMP would help since TD has such a low branching factor at the root
    Since you are so into algorithms of board games, im curius if you've heard of a site called theaigames.com
    Its like an ai vs ai competition with leaderboards for multiple board games

  7. #7
    Senior Member
    TheRigger is offline

    Posts
    640
    From what I understand any successful bot for those board games posted on that site shouldn't be, for one of the following reasons:
    It would be
    (1) Too trivial, or
    (2) Too commercially important, or
    (3) Highly irrelevant

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •