 
     for (size_t i = 0; i < blockIterations; ++i)
     {
-        if (threadIdx.x == 0)
-            printf("%d INTIAL %lu / %lu\n", blockIdx.x ,i, blockIterations);
         size_t node = randomNumber(deviceStates, numberOfPlayfields);
 
         __shared__ Field sharedPlayfield[FIELD_SIZE];
         __shared__ Field oldPlayfield[FIELD_SIZE];
         __shared__ bool possibleMoves[FIELD_SIZE];
-        if (threadIdx.x == 0)
-            printf("%d PLAYFIELDS %lu / %lu\n", blockIdx.x ,i, blockIterations);
+
         size_t playfieldOffset = FIELD_SIZE * node;
         sharedPlayfield[playfieldIndex] = playfields[playfieldOffset + playfieldIndex];
 

        {
            results[node].visits ++;
        }
        if (threadIdx.x == 0)
            printf("%d FINISHED %lu / %lu\n", blockIdx.x ,i, blockIterations);
    }
}



        CudaSimulator simulator(&state, deviceStates);
        if (threadIdx.x == 0)

        expandLeaf(deviceStates, simulator, state);

        __syncthreads();
        if (state.isWinner(currentPlayer))
        {
