如何根据此颜色拼贴瓷砖?

时间:2016-03-22 23:46:07

标签: java swing colors

我正在尝试创建一个“放弃”按钮,根据特定条件为所有切片着色。我的程序生成数字:

让我们说25 5 6 7 然后将这些数字放在

<List>String numberTracker= new ArrayList<String>(); 

(我将它们转换为字符串)

{25,5,6,7}

我的程序将构建5个图块并将每个图块放在每个图块中 2 5 5 6 7

要构建切片我导入Shape并创建一个类别切片,其中包含setTilegetTilegetColorsetColor的形状,颜色和位置, getPositionsetPosition

为了跟踪瓷砖,我将它们保存在

List<Tile> tiles = new ArrayList<tile>();

要跟踪并将数字放在我使用的图块中

List<String> numberString= new ArrayList<String>;

要生成Color我使用tile.changeCoulour(),每次使用后递增

所以,如果我们回到之前的25 5 6 7的例子 使用

创建切片
List<Tile> tiles = new ArrayList<tile>();

每个图块中的字符串编号

List<String> numberString= new ArrayList<String>;

如我所说,每个瓷砖有1位数,2 5 5 6 7(它们都是字符串并放在drawString()

{2,5,5,6,7}

我需要以某种方式创建一个条件,其中25(包含在2个不同的图块中)将是相同的颜色,其余的图块将是不同的

for (Tile item: tiles) {
    int position = item.getPosition();
    if (numberString.get(position) == numberTracker.get(position)) {
        item.setColor(tile.changeColour());
        repaint();
    } else {


    }
}

在那段代码中,我试图将tile位置等于numberString位置,然后等于itemTracker,如果它相同则会改变颜色。但是,我在使用else语句

时遇到了麻烦

1 个答案:

答案 0 :(得分:0)

您的基本想法如下:继续推进指向图块的指针,并在遇到新编号(来自最初输入的编号)时更改颜色。

int ind=0;
for(i=0 to numberTracker.size()-1) {
  String s=numberTracker.get(i);
  Color nextColor=....
  for(j=0 to s.length()-1) { tile(ind).setColor(nextColor); ind++; }
}

这将给出例如{3,5,5,6,7}颜色{红色,红色,绿色,蓝色,Colorx}的颜色。