小编Roc*_*off的帖子

挑战:拍摄48x48图像,找到导致最便宜的乐高解决方案的连续区域来创建该图像!

背景

乐高生产X-Large灰色底板,这是一块大型建筑板材,宽48铆钉,高48铆钉,总面积为2304铆钉.作为一个乐高狂热者,我模仿了一些马赛克风格的设计,可以放在这些基板上,然后挂在墙上或显示器上(参见:Android,Dream Theatre,The Galactic Empire,Pokemon).

挑战

我现在面临的挑战是获得购买这些设计的最低成本.购买2304个单独的1x1板可能会变得昂贵.使用BrickLink,本质上是乐高的eBay,我可以找到数据来确定给定颜色最便宜的部件.例如,0.10美元(或每个螺柱0.025美元)的1x4板块比2.16美元(或每个螺柱0.06美元)的6x6板块便宜.我们还可以确定可用于组装图像的所有可能印版的列表:

1x1
1x2
1x3
1x4
1x6
1x8
1x10
1x12    
2x2 corner!    
2x2
2x3
2x4
2x6
2x8
2x10
2x12
2x16    
4x4 corner!    
4x4
4x6
4x8
4x10
4x12    
6x6
6x8
6x10
6x12
6x14
6x16
6x24    
8x8
8x11
8x16    
16x16
Run Code Online (Sandbox Code Playgroud)

问题

对于这个问题,让我们假设我们有一个列表,包括所有印版,颜色,以及每个印版的"重量"或成本.为了简单起见,我们甚至可以删除角落部分,但这将是一个有趣的挑战.您如何找到最便宜的组件来创建48x48图像?您如何找到使用最少组件的解决方案(不一定是最便宜的)?如果我们要将角落件添加为允许件,您将如何解释它们?

我们可以假设我们有一些通过查询BrickLink获得的主列表,获得给定颜色的给定砖的平均价格,并将其添加为列表中的元素.因此,没有黑色16x16板只是因为它不是制造或出售.然而,16x16 Bright Green板块的价值为3.74美元,按当前可用的平均价格计算.

我希望我对这个问题的记录足够简单.这是我几天来一直在考虑的事情,我很好奇你们的想法.我将其标记为"面试问题",因为它具有挑战性,不是因为我通过面试得到了它(尽管我认为这是一个有趣的问题!).

编辑

这是2x2角件4x4角件的链接.答案不一定需要考虑颜色,但它应该可以扩展以涵盖该场景.情况是并非所有的印版都有各种颜色可供选择,所以想象一下,我们有一系列元素可以识别印版,颜色以及该印版的平均成本(下面是一个例子).感谢本杰明提供赏金!

1x1|white|.07
1x1|yellow|.04
[...]
1x2|white|.05
1x2|yellow|.04
[...]
Run Code Online (Sandbox Code Playgroud)

此列表没有条目:

8x8|yellow|imaginarydollaramount
Run Code Online (Sandbox Code Playgroud)

这是因为不存在8x8黄板.列表本身是微不足道的,只应被视为为解决方案提供参考; 它不会影响解决方案本身.

EDIT2 …

image-manipulation image image-processing lego

30
推荐指数
1
解决办法
1528
查看次数

如何设置Android SeekBar不可移动/冻结?

在我的XML,我给自己定的focusable,focusableInTouchMode,clickable,和longClickable变量假的,但我仍然可以通过点击和移动搜索栏.我是否需要实际更改侦听器事件才能执行此操作?这似乎是不必要的.

android focus click touch seekbar

27
推荐指数
2
解决办法
3万
查看次数

ActionBar setBackgroundDrawable()使用Thread/Handler归零背景

我正在尝试从Handler更改ActionBar的背景.最终目标是将Handler传递给AsyncTask,但是现在甚至从Thread调用Handler.sendMessage()会导致奇怪的行为.通过调试器,我能够看到Handler收到Message并随后运行setActionBarBackground()直到结束.

具有蓝色底部笔划的默认ActionBar完全从屏幕上消失,并且不会被新的GradientDrawable替换.我怀疑背景在某种程度上是无效的.此外,当我再次关注EditText时,会出现正确的GradientDrawable ActionBar背景.我期望的行为是对actionDone进行简单更改的背景.

任何关于为什么会发生这种情况的见解将不胜感激!

相关代码:

TestActivity.java

public class TestActivity extends RoboSherlockFragmentActivity {

    @InjectView(R.id.ET_test) EditText testET;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i(MainApp.TAG, "onCreate");
        setContentView(R.layout.test_activity);

        testET.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                if (i == EditorInfo.IME_ACTION_DONE) {
                    String loc = testET.getText().toString();
                    InputMethodManager mgr = (InputMethodManager) getSystemService(
                            Context.INPUT_METHOD_SERVICE);
                    mgr.hideSoftInputFromWindow(testET.getWindowToken(), 0);
                    Toast.makeText(TestActivity.this, "EditText done!", Toast.LENGTH_SHORT).show();

                    /*TestQuery tq = new TestQuery(TestActivity.this, mHandler);
                    tq.execute();*/
                    new Thread(new Runnable() {
                        public void run() {
                            try {
                                Thread.sleep(1000);
                            } catch (InterruptedException …
Run Code Online (Sandbox Code Playgroud)

android handler actionbarsherlock android-actionbar

11
推荐指数
1
解决办法
6596
查看次数

基于加载文件百分比的RGB渐变

我正在开发我的第一个Flash项目,对于我的预加载器,我想根据加载的百分比做一个非常简单的渐变.预加载器显示"77%加载...",其中数字77是一个名为percentLoaded的动态文本实例.我希望textColor of percentLoaded在#000000到#FFFFFF的渐变上以灰度变化.

因此,我不能简单地做到:

percentLoaded.textColor=(currentValue/100)*0xFFFFFF;
Run Code Online (Sandbox Code Playgroud)

这只是将textColor转换为FFFFFF的倍数,但输出颜色,因为它不是三个独立的组件.目前,这是我所拥有的:

percentLoaded.text=currentValue.toString();
percentLoaded.textColor=rgb2hex((currentValue/100)*255, (currentValue/100)*255, (currentValue/100)*255);
Run Code Online (Sandbox Code Playgroud)

其中"rgb2hex"是类中定义的函数:

public function rgb2hex(r:Number, g:Number, b:Number) {
    return '0x'+(r << 16 | g << 8 | b).toString(16).toUpperCase();
}
Run Code Online (Sandbox Code Playgroud)

看起来这实际上并没有改变字体的颜色.我已经导入了flash.text.TextField和flash.display.MovieClip,但我不确定我是否遗漏了其他内容.使用字符串连接这会更容易吗?或者是否可能有一些正在进行的currentValue/100并将其作为数字传递?

如果好奇,我在这里找到了rgb2hex的代码.

谢谢!

flash rgb hex gradient actionscript-3

5
推荐指数
1
解决办法
850
查看次数

转换TextView-> Bitmap-> ImageView,没有任何显示

我开始一个测试项目只是为了解决这个问题.没有对main.xml的更改.我想创建一个小部件大小的ImageView(80x100),其中包含从TextView转换的位图.是的,这听起来非常迂回,但这只是为了测试; 最后,我希望ImageView有一个背景图像和多个TextViews.我不确定我做错了什么,但没有任何东西被推到屏幕上.

声明TextView/ImageView并在构造函数中传递"this"是一个问题吗?这是我的layoutParams的问题吗?这是代码:

package com.doaf.testproject;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class TestProject extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TextView tv = new TextView(this);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(80, 100);
        tv.setLayoutParams(layoutParams);
        tv.setText("testing 1 2 3");
        tv.setTextColor(0xFFFFFF);
        tv.setBackgroundColor(0x555555);

        Bitmap testB;
        testB = loadBitmapFromView(tv);

        ImageView iv = new ImageView(this);
        iv.setLayoutParams(layoutParams);
        iv.setBackgroundColor(0x555555);
        iv.setImageBitmap(testB);

        setContentView(iv);
    }

    public static Bitmap loadBitmapFromView(View …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-layout

4
推荐指数
1
解决办法
2万
查看次数

使用Gson解析具有不同字段的子类

我正在解析具有类似于此的响应模板的数据:

{
  response: {
    data: {}
  }
  meta: {
    errors: []
    success: 1
  }
}
Run Code Online (Sandbox Code Playgroud)

对于每个特定响应,"数据"字段填充有动态字段,但所有其他键(元等)保持不变.例如:

ClassA的

data: {
  foo: ""
}
Run Code Online (Sandbox Code Playgroud)

ClassB的

data: {
  bar: 3
}
Run Code Online (Sandbox Code Playgroud)

如何建模我的类并使用Gson来表示这些数据?目前我有:

public class BaseResponse {
  @SerializedName("meta") public Meta meta;

  public class Meta {
    @SerializedName("errors") public ArrayList<Error> errors;
    @SerializedName("success") public int success;
  }
}

public class ClassA extends BaseResponse {
  @SerializedName("foo") public String foo;
}

public class ClassB extends BaseResponse {
  @SerializedName("bar") public int bar;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,foo和bar字段在解析时返回null值,例如:

Gson.fromJson(jsonString, ClassA.class);
Run Code Online (Sandbox Code Playgroud)

我相信这是因为"foo"和"bar"字段是内部引用.

java android json gson

4
推荐指数
1
解决办法
3080
查看次数

本地部署Glass Java启动项目,AuthFilter ClassNotFoundException

我已经按照Java快速入门中的步骤进行了操作.尝试在本地部署时,我得到以下堆栈跟踪:

Jun 6, 2013 9:53:14 AM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed /home/derek/dev/external/git/mirror-quickstart-java/web/WEB-INF/appengine-web.xml
Jun 6, 2013 9:53:14 AM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed /home/derek/dev/external/git/mirror-quickstart-java/web/WEB-INF/web.xml
Jun 6, 2013 9:53:14 AM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Jun 6, 2013 9:53:15 AM com.google.apphosting.utils.jetty.JettyLogger info
INFO: jetty-6.1.x
Jun 6, 2013 9:53:15 AM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: EXCEPTION 
java.lang.ClassNotFoundException: com.google.glassware.AuthFilter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:215)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at org.mortbay.util.Loader.loadClass(Loader.java:91)
    at org.mortbay.util.Loader.loadClass(Loader.java:71)
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:81)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at …
Run Code Online (Sandbox Code Playgroud)

google-glass google-mirror-api

1
推荐指数
1
解决办法
481
查看次数