算法练习-回型矩阵

来源:互联网 发布:温度监控软件 贴吧 编辑:程序博客网 时间:2024/06/15 05:38
package Code1;public class Code1_8回型矩阵 {    static int length=8;    static int value=1;    static int[][] snake=new int[length][length];    static Direction lastDirection=Direction.Right;    static enum Direction{        Right,Down,Left,Up;    }    public static void main(String[] args) {        initialArray();        print(snake);    }    private static void initialArray() {        int row=0,col=0;        for(int c=0;c<length*length;c++){            snake[row][col]=value;            lastDirection=findDirection(row,col);            switch(lastDirection){                case Right:                    col++;                    break;                case Down:                    row++;                    break;                case Left:                    col--;                    break;                case Up:                    row--;                    break;                default:                    System.out.println("error");            }            value++;        }    }    private static Direction findDirection(int row, int col) {        Direction direction =lastDirection;        switch(direction){        case Right:{            if((col==length-1)||(snake[row][col+1]!=0)){                direction=direction.Down;            }            break;        }        case Down:{            if((row==length-1)|| snake[row+1][col]!=0){                direction=direction.Left;            }            break;        }        case Left:{            if((col==0)||snake[row][col-1]!=0){                direction=direction.Up;            }            break;        }        case Up:{            if(snake[row-1][col]!=0){                direction=direction.Right;            }            break;        }        }        return direction;    }    private static void print(int[][] ary) {        for(int i=0;i<ary.length;i++){            for(int j=0;j<ary.length;j++){                System.out.printf("%-3d",ary[i][j]);            }            System.out.println();        }    }}

运行结果:

这里写图片描述

原创粉丝点击