实现思路
思路就是如下图所示,就不多说了。
演示效果
源码下载
插入演示代码花了不少时间。。后来发现原来是博客园里有个ID是main,而我自己代码里也有个相同ID,结果就杯具了!以后还是起class来的安全啊!
行列值 |
row=5 |
col=6 |
|
|
|
|
|
|
|
|
|
第一圈 |
i=round=0 |
1 填充上面一行,数组行坐标不变,列坐标+1。0<= y <col-1-i 蓝色部分 |
|
|
2 填充右面一列,数组行坐标+1,列坐标不变。此时y=col-i-1,i+1<=x<=row-i-1 红色部分 |
不能为最后一圈 |
3 填充下面一行,数组行坐标不变,列坐标-1。此时x=row-i-1,i<=y<=col-i-2 绿色部分 |
4
填充左面一列,数组行坐标-1,列坐标不变。此时y=I,i<x<=row-i-2 黄色部分 |
|
|
|
经过上面4步,第一圈完成。后面填充重复上面步骤。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
|
|
|
|
|
|
18 |
19 |
20 |
21 |
22 |
7 |
|
|
|
|
|
|
17 |
28 |
29 |
30 |
23 |
8 |
|
|
|
|
|
|
16 |
27 |
26 |
25 |
24 |
9 |
|
|
|
|
|
|
15 |
14 |
13 |
12 |
11 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|