AŞAĞIDAKİ KODDA SADECE TEK SAYILAR İÇİN ÇALIŞAN BİR SİSTEM VAR.BUNU NASIL TEK VEYA ÇİFT SAYI FARKETMEYECEK ŞEKİLDE DÜZELTEBİLRİZ?

 

package ulam;

import java.util.Arrays;

public class Ulam{
    enum Direction{
        RIGHT, UP, LEFT, DOWN;
    }
    private static String[][] genUlam(int n){
        return genUlam(n, 0);
    }
    private static String[][] genUlam(int n, int i){
        String[][] spiral = new String[n][n];
        Direction dir = Direction.RIGHT;
        int a = i;
        int y = n/2;
        int x = (n % 2 == 0) ? y - 1 : y;
        while(a < ((n * n) )){
            spiral[y][x] =String.format("%d", a);
            switch(dir){
            case RIGHT:
                if( spiral[y + 1][x] == null && a > i) dir = Direction.DOWN; break;
                        case DOWN:
                if(spiral[y][x - 1] == null) dir = Direction.LEFT; break;
            case LEFT:
                if( spiral[y - 1][x] == null) dir = Direction.UP; break;
            case UP:
                if(spiral[y][x + 1] == null) dir = Direction.RIGHT; break;            
                        }
            switch(dir){
                case RIGHT:    x++; break;
                                case DOWN:    y++; break;
                                case LEFT:    x--; break;
                case UP:     y--; break;                                
            }
            a++;
        }
        return spiral;
    }
    public static void main(String[] args){
            
        String[][] ulam = genUlam(6);
        for(String[] row : ulam){
            System.out.println(Arrays.toString(row));
        }
            
    }
}