运行结果
引用
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
class SnakePrint {
static int length = 5;
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] + " ");
}
System.out.println();
}
}
}
分享到:
相关推荐
主要为大家详细介绍了java实现转圈打印矩阵算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
该例程使用eclipse IDE,演示了UART串口环形缓冲区的C语言实现代码,并将printf函数重映射到UART串口实现调试信息的打印输出。环形缓冲区的实现思路参照该链接:https://www.cnblogs.com/zengzy/p/5139582.html。...
可连接WIFI并自动校时的极简主义环形LED时钟。本项目为"Round-Led-Clock"的改进版,主要改进和增加了以下功能:重构主程序及相关注释。解决原版程序运行一段时间就会死机的问题。NTP服务器改为了国内的服务器(阿里云...
这是本人转自http://www.cnblogs.com/reonlyrun/archive/2007/04/05/CSharp_25_Question.html的一篇文章 由本人全部重新排版, 保留图片, 代码着色(以前的版本都没用这些), 提供三种格式: doc, 方便打印 chm...
STM32F103搭载FreeRTOS系统,工程中有2个任务,任务一1秒发送一次数字至任务队列,任务二接收来自任务一和串口中断的填充数据并打印。串口采用DMA+闲时中断方式,串口接收的数据转发到队列中。工程将USART重定义到...
RingBuffer 类 满足以下要求的线程安全环形缓冲区: 五个在环形缓冲区中生成流线。 该字符串的格式为“流生成的消息 №……” 另外两条流线从第一个环形... 程序的主要流程和打印从第二个缓冲区中惩罚 100 条消息。
2>若已在走纸,就检查环形缓冲区是否有待打印数据——比较写入指针与读出指针的值可得知,若有待打印数据,就会在纸每走过一行时,把数据送入打印头并加热打印。 走纸,加热和数据传输,三者同时处理的时序 需要走纸...
* 得实打印机的特色:得实打印机是一种专业的打印设备,具有高质量的打印效果和长寿命的色带。 * 色带的类型:色带可以分为两种:普通环形色带和得实扭结色带。普通环形色带是最常见的色带类型,得实扭结色带是专门...
最后,根据总账文件打印会计报表。 第二个数据流图实例描述了进销存系统的处理过程。该过程包括五个主要步骤:确定每个动作的前序条件和后续动作,画出顶层数据流图,精化每个动作的核核心心动作和报表,确定每个...
STM32F103单片机上用FreeRTOS传输串口数据,在串口中断中用队列存储串口接收的数据,然后再定时器中断中,用队列接收串口的数据并打印出来。
环形单链表的约瑟夫问题 一个鉴定链表是否为回文结构 将单向链某值分割成小表、送、按右边大的形式 复制带有日常指针的节点表 两个单链表生成相加链表 两个单链表相交的问题 将单链表的每K个节点之间逆序 二叉树问题...
环形结构 C.总线结构 D.混合结构 14.校园网属于( B )。 A. 远程网 B. 局域网 C.广域网 D. 城域网 15.从用途来看,计算机网络可分为专用网和( C )。 A.广域网 B.分布式系统 C.公用网 D.互连网 16.下列哪一个不能...
std::cout风格的日志库,支持颜色高亮、代码定位、异步打印。 INI配置文件的读写。 监听者模式的消息广播器。 基于智能指针的循环池,不需要显式手动释放。 环形缓冲,支持主动读取和读取事件两种模式。 mysql链接池...
* 环形拓扑结构:是指所有主机通过环形连接,数据传输时沿着环形传送。 * 星形拓扑结构:是指所有主机通过中心设备连接,数据传输时通过中心设备转发。 四、计算机网络的类型 * 局域网(LAN):是指在小的地理区域...
MyLang 一个由Nearley构建的业余编译器。 特征 Lexer 解析器 ...环形 $ node parser.js examples/loop.mylang $ node examples/loop.js n : = 1 while n < 10 { n : = n + 1 print n } 斐波那契
本例子是一个环形双层的菜单,可以根据手势的左右滑动,可以进行相应的转动,并且可以点击任意一个选项,动态效果类似于老式的老式的转盘电话,自己脑补一下吧。点击任何一个菜单会在logCat里面打印出当前点击项。
本例子是一个环形双层的菜单,可以根据手势的左右滑动,可以进行相应的转动,并且可以点击任意一个选项,动态效果类似于老式的老式的转盘电话,自己脑补一下吧。点击任何一个菜单会在logCat里面打印出当前点击项。 ...