 	startGame(deviceStates, rootState, reiterations, moveX, moveY, wins, visits);
 }
 
-const int FIELD_DIMENSION = 8;
-
-// __global__ bool flip(int playfieldX, int playfieldY, Field* playfield, size_t moveX, size_t moveY, int directionX, int directionY, int offset, Field expectedPlayer)
-// {
-//     int oldMovedX = moveX + directionX * offset - 1;
-//     int oldMovedY = moveY + directionY * offset - 1;
-//     int oldMovedIndex = moveX + moveY * FIELD_DIMENSION;
-//     int movedX = oldMovedX + directionX;
-//     int movedY = oldMovedY + directionY;
-//     int movedIndex = moveX + directionX + (moveY + directionY) * FIELD_DIMENSION;
-//     bool allowed = true;
-//     if (playfieldX == movedX && playfieldY == movedY)
-//     {
-//         if (playfield[movedIndex] == 0) && playfield[oldMovedIndex] != playfield[movedIndex])
-//         {
-            
-//         }
-//     }
-// return true;
-// }
+
+
 
 __device__ Player getEnemyPlayer(Player currentPlayer)
 {

        calculatePossibleMoves(possibleMoves, sharedPlayfield, playfieldIndex, currentPlayer);
        moveCount = countPossibleMoves(possibleMoves, playfieldIndex, sharedPlayfield);
        debug++;
        counts[playfieldIndex]++;
        __syncthreads();
	} while (moveCount > 0 && debug < 10000);

    __syncthreads();
    printf("%d Debug\n", debug);
    printf("%d Died at ", playfieldIndex);
    printf("%d Depth\n", counts[playfieldIndex]);

	playfield[playfieldIndex] = sharedPlayfield[playfieldIndex];
	__syncthreads();
	if (possibleMoves[playfieldIndex])
	{
		//sharedPlayfield[playfieldIndex] = Illegal;
		int playfieldX = playfieldIndex % FIELD_DIMENSION;
    	int playfieldY = playfieldIndex / FIELD_DIMENSION;
		// printf("Block %2d %2d, Thread %2d %2d %2d, Field: %d [%2u,%2u] \n", 
		//   blockIdx.x, blockIdx.y, threadIdx.x, threadIdx.y, threadIdx.z, 
		//   sharedPlayfield[playfieldIndex] , playfieldX, playfieldY);
	}
}
__device__  void calculatePossibleMoves(bool* possibleMoves, Field* sharedPlayfield, size_t playfieldIndex, Player currentPlayer)
{
    possibleMoves[playfieldIndex] = false;
    
    __syncthreads();

    if (sharedPlayfield[playfieldIndex] == Free)
