J'essaie de prendre des tableaux 9x9, 12x12, 15x15, etc. et d'avoir le programme les interpréter comme plusieurs carrés de 3x3.Opération arithmétique pour que 0, 1 et 2 retournent 0 | 3, 4, & 5 return 1, etc
Par exemple:
0 0 1 0 0 0 0 0 0
0 0 0 0 0 2 0 0 0
0 0 0 0 0 0 0 3 0
0 0 0 0 0 0 6 0 0
0 0 4 0 0 0 0 0 0
0 0 0 0 0 5 0 0 0
0 0 0 0 0 0 0 0 0
0 7 0 0 0 0 0 0 0
0 0 0 0 8 0 0 0 9
sera interprété comme:
0 0 1 | 0 0 0 | 0 0 0
0 0 0 | 0 0 2 | 0 0 0
0 0 0 | 0 0 0 | 0 3 0
------+-------+------
0 0 0 | 0 0 0 | 6 0 0
0 0 4 | 0 0 0 | 0 0 0
0 0 0 | 0 0 5 | 0 0 0
------+-------+------
0 0 0 | 0 0 0 | 0 0 0
0 7 0 | 0 0 0 | 0 0 0
0 0 0 | 0 8 0 | 0 0 9
Où:
"1" @ [0][2] is in box "[0][0]"
"2" @ [1][5] is in box "[0][1]"
...
"6" @ [3][6] is in box "[1][2]"
...
"9" @ [8][8] is in box "[2][2]"
.
Je peux utiliser row % 3
et column % 3
pour déterminer les valeurs de ligne et de colonne dans la boîte, mais comment puis-je déterminer dans quelle boîte une valeur donnée dans le tableau est stockée?
Cette formule pourrait être utilisée dans une méthode telle que celle ci-dessous.
public int[] determineCoordinatesOfBox(int rowInArray, int columnColumnInArray) {
// determine row value
// determine column value
// return new int[2] with coordinates
}
Cela semble possible et je me suis passé la tête dessus. Peut-être que je fais un problème simple trop difficile?
Un grand merci pour l'aide!
- Justian
Comme indiqué ci-dessous, si vous utilisez l'opérateur/sur les entiers, cela fonctionnera correctement. Par exemple Row 2 et Column 3 seraient Box [0] [1] (colonnes de numérotation et lignes de 0). Cela semble être ce que vous voulez. –
C'est si ridiculement simple. Je cherchais une formule alors que j'aurais dû regarder des concepts de nombres entiers débutants >> –
Humiliation :(. –