Mam problem z dokończeniem tego zadania, a mianowicie nie wiem jak zamknąć w pętli dane wywołania funkcji żeby ładnie rysowały tę spiralę. Poniżej dołączam kod i zdjęcie zadania.
package javaapplication4;
public class JavaApplication4 {
public static void main(String[] args) {
int x = 3;
int y = 3;
int[][] tab = new int[20][20];
operacjeTablica a = new operacjeTablica();
a.wypelniacz(tab);
System.out.println("=========================");
a.fillcol(tab, 0, 1);
a.fillrow(tab, 19, 1);
a.fillcol(tab, 19, 1);
a.fillRowFromTo(tab, 0, 2, 21, 1);
a.fillColFromTo(tab, 2, 1, 19, 1);
a.fillRowFromTo(tab, 17, 3, 21, 1);
a.fillColFromTo(tab, 17, 2, 19, 1);
a.fillRowFromTo(tab, 2, 4, 21, 1);
a.fillColFromTo(tab, 4 , 3, 19, 1 );
a.fillRowFromTo(tab, 15, 5, 21, 1);
a.fillColFromTo(tab, 15 , 4, 19, 1 );
a.fillRowFromTo(tab, 4, 6, 21, 1);
a.display(tab);
}
}
class operacjeTablica {
int x;
int y;
void wypelniacz(int tab[][]) {
for (int i = 0; i < tab.length; i++) {
for (int j = 0; j < tab[i].length; j++) {
tab[i][j]=0;
}
}
}
void display(int tab[][]) {
for (int i = 0; i < tab.length; i++) {
for (int j = 0; j < tab[i].length; j++) {
System.out.print("["+tab[i][j]+"]");
}
System.out.println();
}
}
void fillrow(int tab[][], int row, int val) {
for (int i = 0; i < tab[row].length; i++) {
tab[row][i] = val;
}
}
void fillcol(int tab[][], int col, int val) {
for (int i = 0; i < tab[col].length; i++) {
tab[i][col] = val;
}
}
void fillRowFromTo(int[][] tab, int row, int from, int to, int val) {
int ilosc = to - from;
for (int i = from; i < ilosc; i++) {
tab[row][i] = val;
}
}
void fillColFromTo(int[][] tab, int col, int from, int to, int val) {
int ilosc = to - from;
for (int i = from; i < ilosc; i++) {
tab[i][col] = val;
}
}
}