January 06, 2015

How to create a Magic square in java

Java code to print Odd Magic Square Matrix

The code is working fine for only 3 x 3 matrix.


/**
 * @author micromax
 *
 */
public class MagicSquare {
   
    private int [][]magicSquare = null;
   
    private void computerMagicSquare(int matrixOrder) {
        // TODO Auto-generated method stub
        int initialValue = (matrixOrder/2);
        int row = initialValue;
        int col = initialValue;
        int loopCount = matrixOrder * matrixOrder;
        int maxMatrixSize = matrixOrder-1;
        magicSquare = new int[matrixOrder][matrixOrder];
       
       
        for(int value=1; value <=loopCount; value++){ // loop value from 1 to square(order)
            //System.out.println(" value :"+value +" Row :"+row+" Col :"+col);
            magicSquare[row][col] = value;
            row = row + 1;
            col = col - 1;
            if(col<0){ col=maxMatrixSize;}
            if(row>maxMatrixSize){ row=0;}
            if(magicSquare[row][col]>0){
                row=row-1;
                col=col+2;
                if(col>maxMatrixSize)
                    col=0;
                if(row<0)
                    row=maxMatrixSize;
            }
        }
}
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MagicSquare magicSquare = new MagicSquare();
        //System.out.println(" Enter the order of matrix ");
       
        //Scanner scanner = new Scanner(System.in);
        //int matrixOrder = scanner.nextInt();
        int matrixOrder = 3;
        magicSquare.computerMagicSquare(matrixOrder);
        magicSquare.dispalyMagicSquare(matrixOrder);

    }

    private void dispalyMagicSquare(int matrixOrder) {
        // TODO Auto-generated method stub
        System.out.println("Displaying Magic Matrix ");
        for(int row=0; row<matrixOrder; row++){
            for(int col=0; col<matrixOrder; col++){
                System.out.print(magicSquare[row][col]+"\t");
            }
            System.out.println("\n");
        }
       
    }



}

  


 Output:





Author +belazy



 http://javabelazy.blogspot.in/

Facebook comments