我正在做数独游戏。在这里,我试图在一个空的网格中放置一个数字。我有一个提供初始化3个变量的构造函数,然后创建了一个具有3个值的对象。我想在网格中传递每个对象的这三个值,这是我的代码。
public int [][] insertNumber(int x, int y , int z){
isOnRow(x,z);
isOnColomn(y,z);
isOnBlock(x,y,z);
tableau [x][y] = z;
return tableau;
}
public static void main(String[] args) {
ArrayList<Case> contenantCase = new ArrayList<>();
Case objetCase1 = new Case(0,1,4);
Case objetCase2 = new Case(0,2,3);
Case objetCase3 = new Case(0,3,7);
contenantCase.add(objetCase1);
contenantCase.add(objetCase2);
contenantCase.add(objetCase3);
insertNumber(objetCase1);
printGrille();
答案 0 :(得分:1)
我不知道您的Case类是什么样子,但是您可以更改insertNumber()方法以接受Case对象,或者需要这样调用它:
insertNumber(objectCase1.x, objectCase.y, objectCase.z);
假定Case类具有3个字段x,y和z。
答案 1 :(得分:0)
根据您的代码,这就是我在同一类中使用新参数所做的事情。
// also applicable with static to use it on the fly.
public static class NumberInserter() {
private int x,y,z;
private case _case;
NumberInserter() {}
NumberInserter(int x, int y, int z) {}
NumberInserter(Case case) { _case = case; }
public int [][] doInt(){
isOnRow(x,z);
isOnColomn(y,z);
isOnBlock(x,y,z);
tableau [x][y] = z;
return tableau;
}
public int [][] doCase(){
isOnRow(case.x, case.z);
isOnColomn(case.y,case.z);
isOnBlock(case.x, case.y,case.z);
tableau [case.x][case.y] = case.z;
return tableau;
}
}
public static void main(String[] args) {
ArrayList<Case> contenantCase = new ArrayList<>();
Case objetCase1 = new Case(0,1,4);
Case objetCase2 = new Case(0,2,3);
Case objetCase3 = new Case(0,3,7);
contenantCase.add(objetCase1);
contenantCase.add(objetCase2);
contenantCase.add(objetCase3);
NumberInserter(objetCase1).doCase();
printGrille();