Announcement

Collapse
No announcement yet.

Basic algorithms used for pp bots?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    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
    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, 04:52 PM.

    Comment


      #3
      Exactly the post I was looking for. Thanks and I was wondering how your TD bot compares with DFS
      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, 01:32 AM.

      Comment


        #4
        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

        Comment


          #5
          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*.

          Comment


            #6
            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

            Comment


              #7
              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

              Comment

              Working...
              X