一个画图程序 要求打印出:
1.int i=5;
2.1 2 3 4 5
3.16 17 18 19 6
4.15 24 25 20 7
5.14 23 22 21 8
6.13 12 11 10 9
7.
8.int i=6
9.1 2 3 4 5 6
10.20 21 22 23 24 7
11.19 32 33 34 25 8
12.18 31 36 35 26 9
13.17 30 29 28 27 10
14.16 15 14 13 12 11
和
http://bylijinnan.iteye.com/admin/blogs/1401698是类似的
代码如下:
public class SnakePrinter {
private boolean error;
private Direction direction=Direction.RIGHT;
private int[][] matrix;
public static void main(String[] args) {
int n=7;
SnakePrinter snake=new SnakePrinter();
snake.initial(n);
if(!snake.error){
snake.print();
//System.out.println(Arrays.deepToString(snake.matrix));
}
}
public void initial(int n){
if(n<0)return;
matrix=new int[n][n];
int row=0,col=0;
int value=1;
int max=n*n;
while(value<=max){
matrix[row][col]=value;
direction=findDirection(row,col,n);
switch(direction){
case RIGHT:
col++;
break;
case LEFT:
col--;
break;
case DOWN:
row++;
break;
case UP:
row--;
break;
default:
this.error=true;
break;
}
value++;
}
}
public Direction findDirection(int row,int col,int len){
if(row<0||col<0||row>=len||col>=len){
this.error=true;
}
Direction direction=this.direction;
switch(direction){
case RIGHT:
if(col==len-1 || matrix[row][col+1]!=0){
direction=Direction.DOWN;
}
break;
case LEFT:
if(col==0 || matrix[row][col-1]!=0){
direction=Direction.UP;
}
break;
case DOWN:
if(row==len-1 || matrix[row+1][col]!=0){
direction=Direction.LEFT;
}
break;
case UP:
if(row==0|| matrix[row-1][col]!=0){
direction=Direction.RIGHT;
}
break;
default:
this.error=true;
break;
}
return direction;
}
public void print(){
if(matrix==null){
return;
}
int len=matrix.length;
for(int row=0;row<len;row++){
for(int col=0;col<len;col++){
System.out.print(matrix[row][col]+" ");
}
System.out.println();
}
}
public enum Direction{
RIGHT,DOWN,LEFT,UP
}
}
分享到:
相关推荐
摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片...
在本文中,我们将深入探讨如何使用Java编程语言来打印数字组成的魔方阵和字符组成的钻石图形。这些技术在创建命令行界面(CLI)程序时非常有用,能够为用户界面增添视觉吸引力。 首先,我们来看如何打印魔方阵。...
Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、...
摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片...
摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片...
Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、...
#include #include using namespace std; int main() { int n,i,k=0; cin>>n; for(i=n*n;i>=1;i--) { cout(5); k++; if(k%n==0) cout; } cout; return 0;
摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片...
- **类型**:包括键值存储、文档数据库、图形数据库等。 ### 一致性Hash - **原理**:通过哈希函数将节点映射到环上,提高分布式的性能和可用性。 - **应用场景**:负载均衡、缓存系统等。 ### PreparedStatement...
在提供的"Matrixs.java"文件中,很可能包含了实现上述功能的Java代码。这个文件可能包括了一个名为Matrixs的类,其中定义了计算矩形数和执行星形变换的方法。通过阅读和分析这段代码,我们可以深入理解算法的实现...
在3D打印或CNC绘图中,Gcode控制着打印头或刀具的运动路径和速度,确保了图形或结构的准确制造。 GerberToGcode项目是用Java编程语言实现的,Java是一种广泛使用的、跨平台的面向对象的编程语言,拥有丰富的库和...