我正在尝试创建一个“放弃”按钮,根据特定条件为所有切片着色。我的程序生成数字:
让我们说25 5 6 7 然后将这些数字放在
中<List>String numberTracker= new ArrayList<String>();
(我将它们转换为字符串)
{25,5,6,7}
我的程序将构建5个图块并将每个图块放在每个图块中 2 5 5 6 7
要构建切片我导入Shape并创建一个类别切片,其中包含setTile
,getTile
,getColor
,setColor
的形状,颜色和位置, getPosition
和setPosition
。
为了跟踪瓷砖,我将它们保存在
中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语句
时遇到了麻烦答案 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}的颜色。