/***========================================
*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
*========================================*/classsnakePrint {staticintlength=7;staticintvalue=1;staticint[][] snake=newint[length][length];staticDirection lastDirection=Direction.Right;staticenumDirection {
Right, Down, Left, Up;
}publicstaticvoidinitialArray() {introw=0, line=0;for(intc=0; c
snake[row][line]=value;
lastDirection=findDirection(row, line);switch(lastDirection) {caseRight:
line++;break;caseDown:
row++;break;caseLeft:
line--;break;caseUp:
row--;break;default:
System.out.println("error");
}
value++;
}
}staticDirection findDirection(introw,intline) {
Direction direction=lastDirection;switch(direction) {caseRight: {if((line==length-1)||(snake[row][line+1]!=0))
direction=direction.Down;break;
}caseDown: {if((row==length-1)||(snake[row+1][line]!=0))
direction=direction.Left;break;
}caseLeft: {if((line==0)||(snake[row][line-1]!=0))
direction=direction.Up;break;
}caseUp: {if(snake[row-1][line]!=0)
direction=direction.Right;break;
}
}returndirection;
}publicstaticvoidmain(String[] args) {
initialArray();//display.....for(inti=0; i
System.out.print(snake[i][j]+"");
}
System.out.println();
}
}
}