`
- 浏览:
44797 次
-
-
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();
-
-
-
for
(
int
i =
0
; i < length; i++) {
-
for
(
int
j =
0
; j < length; j++) {
-
System.out.print(snake[i][j] + " "
);
-
}
-
System.out.println();
-
}
-
}
-
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
蛇形排序(Snake Order)是一种特殊的排序方式,它在矩阵中按照蛇形路径填充数字,类似于棋盘上蛇的移动。这种排序方法在处理二维数组时特别有用,尤其是在需要交错填充数据的情况下。在C#中实现蛇形排序,我们可以...
蛇形矩阵,又称Z字形矩阵,是一种特殊的二维数组排列方式。它的基本思想是从左上角开始,按照“左-下-右-上”的顺序填充元素,形状如同蛇的蜿蜒移动。这种矩阵在处理二维数据时有着广泛的应用,例如在矩阵的打印、...
数字排列算法 **题目描述**:将1、2、…、20这20个数排成一排,使得相邻的两个数之和为一个素数,且首尾两数字之和也为一个素数。编程打印出所有的排法。 **解题思路**:这是一个典型的排列问题,可以通过回溯...
这是一种经典的组合数表示形式,每行代表了组合数的一系列值,算法设计上可能涉及到递推或迭代的方法。 #### 2.12 字母矩形 可能涉及到字符的循环输出,用于绘制由字母组成的矩形图案,需要掌握字符编码和输出控制...
在本文中,我们将深入探讨如何使用PHP编程语言实现三种特殊的矩阵类型:蛇形矩阵、回环矩阵...无论是蛇形矩阵、回环矩阵还是数字螺旋矩阵,都可以通过适当的算法设计和逻辑控制实现,并可根据实际需求进行调整和优化。
2.4 蛇阵:可能与蛇形填充矩阵或蛇形打印有关。 2.5 对角矩阵:可能需要处理非标准的矩阵打印方式。 2.6 魔方阵:涉及到特定规则的矩阵生成,如幻方。 这些例题在UCDOS3.0和Turbo C 2.0环境下经过了严格的测试和...
这个问题可以通过回溯算法或动态规划来解决。你需要创建一个二维数组,然后尝试填充数字,同时检查每行和每列的唯一性。一旦找到一个有效的解,就记录下来,并继续寻找下一个解。 5. **十进制转N进制**: 这个问题...
通过不断取模和除以10的操作,可以分离出每个数字位,然后使用冒泡排序算法对这些数字进行降序排列。排序后的数字再次组合成一个新的五位数并输出。 此外,还提供了一个构建蛇形矩阵的例子。与螺旋矩阵不同,蛇形...
题目给出了三种矩阵填数的方式:倒填、蛇形填数、回转填数,并要求编程实现。 **解题思路:** 1. **倒填:** 从最后一个元素开始,按照顺序填充矩阵。 2. **蛇形填数:** 逐行填充,偶数行从右向左填充。 3. **...
这类问题涉及到排列组合,以及回溯法或递归算法的实现,是检验编程者对算法深度理解的好题目。 **数制转换**是一个与数学密切相关的编程题目。它要求将十进制数转换为N进制数,这不仅需要理解不同进制之间的转换...
1. **方向控制:**对于蛇形填数和回转填数,需要控制填数的方向。 2. **边界判断:**在填数过程中要注意边界条件,避免越界。 3. **输出格式:**根据题目要求输出矩阵,注意行列之间的分隔符。 #### 题目7:文本...
生成螺旋矩阵需要使用复杂的算法和数据结构,这个代码提供了一个简单的解决方案。 这个代码还可以应用于其他领域,例如数据压缩、图像处理、游戏开发等。开发者可以根据自己的需求修改和扩展这个代码,以满足不同的...
为了将这一算法在Python中实现,我们可以使用`collections.deque`数据结构,它提供了高效的两端操作能力,非常适合于模拟蛇形排列的移动过程。在这个过程中,我们首先将所有队伍分为两列,一列是主队,另一列是客队...