public double playFromGivenState(BestMoveFinder bestMoveFinder, int[][] board, boolean shouldLog) {
        do {
            if (shouldLog) {
                System.out.println("After spawn:");
                OriginalGamePlayer.print(board);
            }
            Move move = bestMoveFinder.findBestMove(board);
            if (shouldLog) {
                System.out.println("After move: " + move);
                OriginalGamePlayer.print(board);
            }
        } while (addRandomTile(board));
        int sum = 0;
        for (int[] aBoard : board) {
            for (int anABoard : aBoard) {
                sum += anABoard;
            }
        }
        return sum;
    }