13
Авг
2022

JAVA змейка в двухмерном массиве

Заполните массив числами увеличивающимися от 1 до n*n таким образом, чтобы последовательность чисел составляла змейку.

Отобразить значения заполненного массива в консоль в виде таблицы.

Программа должна корректно работать для любых значений n >= 2.

Пример вывода результата для массива n = 3:

1  2  3  
6  5  4  
7  8  9 

у меня вышло только:

1  2  3  
7  8  9  
6  5  4  
final int n = 3;
        final int range = n * n;
        int[][] masiv = new int[n][n];
        int x = 0;
        int y = n - 1;
        int ctr = 1;

        while (ctr <= range) {
            for (int i = 0; i < masiv.length; i++) {
                if (masiv[x][i] == 0) {
                    masiv[x][i] = ctr++;
                }
            }

            for (int i = 0; i < masiv.length; i++) {
                if (masiv[i][y] == 1) {
                    masiv[i][y] = ctr++;
                }
            }

            for (int i = masiv.length - 1; i >= 0; i--) {
                if (masiv[y][i] == 0) {
                    masiv[y][i] = ctr++;
                }
            }

            for (int i = masiv.length - 1; i >= 0; i--) {
                if (masiv[i][x] == 0) {
                    masiv[i][x] = ctr++;
                }
            }
            x++;
            y--;
        }

        for (int i = 0; i < masiv.length; i++) {
            for (int j = 0; j < masiv.length; j++) {
                System.out.printf("%-2d ", masiv[i][j]);
            }
            System.out.println("");
        }

Источник: https://ru.stackoverflow.com/questions/1439052/java-%D0%B7%D0%BC%D0%B5%D0%B9%D0%BA%D0%B0-%D0%B2-%D0%B4%D0%B2%D1%83%D1%85%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D0%BC-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B5

Тебе может это понравится...

Добавить комментарий