输出一种图形

来源:互联网 发布:博睿软件测试 编辑:程序博客网 时间:2024/06/06 05:17

一个画图程序 要求打印出 

int i=5;

1  2  3  4  5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9


int i=6
1  2  3  4  5   6
20 21 22 23 24  7
19 32 33 34 25  8
18 31 36 35 26  9
17 30 29 28 27 10

16 15 14 13 12 11

class SnakePrint {static int length = 7;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 initialArray() {int row = 0, line = 0;for (int c = 0; c < length * length; c++) {snake[row][line] = value;lastDirection = findDirection(row, line);switch (lastDirection) {case Right:line++;break;case Down:row++;break;case Left:line--;break;case Up:row--;break;default:System.out.println("error");}value++;}}static Direction findDirection(int row, int line) {Direction direction = lastDirection;switch (direction) {case Right: {if ((line == length - 1) || (snake[row][line + 1] != 0))direction = direction.Down;break;}case Down: {if ((row == length - 1) || (snake[row + 1][line] != 0))direction = direction.Left;break;}case Left: {if ((line == 0) || (snake[row][line - 1] != 0))direction = direction.Up;break;}case Up: {if (snake[row - 1][line] != 0)direction = direction.Right;break;}}return direction;}public static void main(String[] args) {initialArray();// display.....for (int i = 0; i < length; i++) {for (int j = 0; j < length; j++) {System.out.print(snake[i][j] + "\t");}System.out.println();}}}

来源:http://www.iteye.com/topic/545378