游戏规则
按照位置为0的路线移动,上下左右方向键依次为 8、2、4、6
游戏编码
编码思路:
- 定义一个二维数组,七个一维数组,每个一维数组七个元素,并且按照游戏规则设置0,1,初始值位置
- 打印数组,用于开始游戏
- 定义变量x,y。用于位置移动后位置的确定,以及边界限定
- while循环,其中获取用户输入数字
- 使用switch语句,根据输入的数字执行相应的操作
- for循环动态打印数组
- 到达指定位置,结束循环
代码实现:
代码还有很多需要完善的地方,基本功能已经实现,可以放到Eclipse运行实现效果
public static void main(String[] args) {
int [][]maze = {
{1,1,1,1,1,1,1},
{5,0,1,1,1,1,1},
{1,0,1,1,1,1,1},
{1,0,0,1,1,1,1},
{1,1,0,1,1,1,1},
{1,1,0,0,1,1,1},
{1,1,1,0,1,1,1}
};
for(int x = 0;x < maze.length;x++) {
for(int y = 0; y<maze[x].length;y++) {
System.out.print(maze[x][y]+" ");
}
System.out.println();
}
int x = 1;
int y = 0;
Scanner scanner=new Scanner(System.in);
wp:while(true) {
int num=scanner.nextInt();
switch(num) {
case 8:
if(maze[x-1][y] == 0) {
int c;
c=maze[x][y];
maze[x][y]=maze[x-1][y];
maze[x-1][y]=c;
--x;
}
break;
case 6:
if(maze[x][y+1]==0) {
int c;
c=maze[x][y];
maze[x][y]=maze[x][y+1];
maze[x][y+1]=c;
++y;
}
break;
case 2:
if(maze[x+1][y]==0) {
int c;
c=maze[x][y];
maze[x][y]=maze[x+1][y];
maze[x+1][y]=c;
++x;
}
break;
case 4:
if(maze[x][y-1]==0) {
int c;
c=maze[x][y];
maze[x][y]=maze[x][y-1];
maze[x][y-1]=c;
--y;
}
break;
default:
break;
}
for(int x1=0;x1<maze.length;x1++) {
for(int y1=0;y1<maze[x1].length;y1++) {
System.out.print(maze[x1][y1]+" ");
}
System.out.println();
}
if(x==6&&y==3) {
System.out.println("你赢了");
}
// if(y==-1) {
// System.out.println("不可通行");
// break wp;
// }
}
}