title: java draughts AI (multithreaded)
body: <p>This is my first question here, if I did something wrong, tell me...</p>
  
  <p>I'm currently making a draughts game in Java. In fact everything works except the AI.
  The AI is at the moment single threaded, using minimax and alpha-beta pruning. This code works, I think, it's just very slow, I can only go 5 deep into my game tree.</p>
  
  <ol>
  <li>I have a function that recieves my mainboard, a depth (starts at 0) and a maxdepth. At this maxdepth it stops, returns the player's value (-1,1 or 0) with the most pieces on the board and ends the recursive call.</li>
  <li>If maxdepth isn't reached yet, I calculate all the possible moves, I execute them one by one, storing my changes to the mainboard in someway.</li>
  <li>I also use alpha-beta pruning, e.g. when I found a move that can make the player win I don't bother about the next possible moves.</li>
  <li>I calculate the next set of moves from that mainboard state recursively. I undo those changes (from point 2) when coming out of the recursive call. I store the values returned by those recursive calls and use minimax on those.</li>
  </ol>
  
  <p>That's the situation, now I have some questions.
  I'd like to go deeper into my game tree, thus I have to diminish the time it takes to calculate moves.</p>
  
  <ol>
  <li>Is it normal that the values of the possible moves of the AI (e.g. the moves that the AI can choose between) are always 0? Or will this change if I can go deeper into the recursion? Since at this moment I can only go 5 deep (maxdepth) into my recursion because otherwise it takes way too long.</li>
  <li>I don't know if it's usefull, but how I can convert this recursion into a multithreaded recursion. I think this can divide the working time by some value...</li>
  </ol>
  
  <p>Can someone help me with this please?</p>