您好我正在为我的Java类创建一个Battleship程序。现在,我正在努力研究射击的课程。为了解雇,我试图将背景颜色从蓝色(这意味着它只是一个空单元格)变为黄色(表明我已经在那个单元格中被解雇但是那里没有任何东西)。
这是Fire类的代码。如果您认为有必要,我可以包含它继承的其他类。我遇到问题的主要方法是尝试让我的“for”循环通过,然后将背景从蓝色变为黄色,以获得我想要的迭代次数。 100是用于测试目的的任意数字。
public class Fire extends Ship{
public Fire() throws InterruptedException{
super.setShipV();
}
public void Shoot() throws InterruptedException {
Random random= new Random();
int a = random.nextInt(100);
int b = random.nextInt(100);
for (int i = 0; i< 100; i++){
//for(int j = 0; j< 50; i++){
grid[a][b].setBackground(Color.yellow);
}
}
}
感谢您的帮助。
汉娜
答案 0 :(得分:1)
访问网格时需要使用迭代器变量。
尝试这样的事情:
for (int i = 0; i< 100; i++){
for(int j = 0; j< 50; i++){
grid[i][j].setBackground(Color.yellow);
}
或者如果要更改100个随机字段,请将random.nextInt
置于循环内,以便a
和b
在每次迭代中更改(随机值可以达到与先前迭代相同的值) )
for (int i = 0; i< 100; i++){
int a = random.nextInt(100);
int b = random.nextInt(100);
grid[a][b].setBackground(Color.yellow);
}
每次迭代中执行的唯一代码是{
(for(..)
之后)和}
之间的代码。这意味着在您的代码中a
和b
设置一次,然后您将相同的网格字段标记为黄色一百次。如果您这样做,则在每次迭代中为a
和b
提供一个新值。