package com.qf.day5;
import java.util.Arrays;
import java.util.Scanner;
public class Test14 {
//数字零移动-----拼图
public static void main(String[] args) {
//数组打乱
int[] arr={1,2,3,4,5,0,7,8,9};
System.out.println(“打乱前的数组:”+Arrays.toString(arr));
java.util.Random random=new java.util.Random();
//遍历数组
for(int i=0;i<arr.length;i++){
int temp=random.nextInt(arr.length);
int c=arr[temp];
arr[temp]=arr[0];
arr[0]=c;
}
System.out.println(“打乱后的数组:”);
//遍历一维数组
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
System.out.println("\n");
//一维数组转化二维数组
int[][] brr=new int[3][3];
for(int i=0;i<arr.length;i++){
brr[i/3][i%3]=arr[i];
}
//遍历数组,打印二维数组
System.out.println("一维数组转化二维数组后为:");
for(int i=0;i<brr.length;i++){
for(int j=0;j<brr[i].length;j++){
System.out.print(brr[i][j]+"\t");
}
System.out.println();
}
//找零的位置
int index_i=0,index_j=0;
for(int i=0;i<brr.length;i++){
for(int j=0;j<brr[i].length;j++){
if(brr[i][j]==0){
index_i=i;
index_j=j;
break;
}
}
}
// System.out.println(brr[index_i][index_j]);
//移动数字0
Scanner scanner=new Scanner(System.in);
int result=0;
do{
System.out.println("请输入w上移动,请输入s下移动,请输入a左移动,请输入d左移动,请输入stop停止移动");
String sc=scanner.next();
//
switch (sc) {
//左移动
case "a":
if(index_j>0){
int temp=brr[index_i][index_j];
brr[index_i][index_j]=brr[index_i][index_j-1];
brr[index_i][index_j-1]=temp;
index_j--;
}
//遍历数组,显示移动后数组的结果
System.out.println("移动后的二维数组为:");
for(int i=0;i<brr.length;i++){
for(int j=0;j<brr[i].length;j++){
System.out.print(brr[i][j]+"\t");
}
System.out.println();
}
break;
case "d":
//右移动
if(index_j<2){
int temp=brr[index_i][index_j];
brr[index_i][index_j]=brr[index_i][index_j+1];
brr[index_i][index_j+1]=temp;
index_j++;
}
System.out.println("移动后的二维数组为:");
for(int i=0;i<brr.length;i++){
for(int j=0;j<brr[i].length;j++){
System.out.print(brr[i][j]+"\t");
}
System.out.println();
}
break;
case "w":
//上移动
if(index_i>0){
int temp=brr[index_i][index_j];
brr[index_i][index_j]=brr[index_i-1][index_j];
brr[index_i-1][index_j]=temp;
index_i--;
}
System.out.println("移动后的二维数组为:");
for(int i=0;i<brr.length;i++){
for(int j=0;j<brr[i].length;j++){
System.out.print(brr[i][j]+"\t");
}
System.out.println();
}
break;
case "s":
//下移动
if(index_i<2){
int temp=brr[index_i][index_j];
brr[index_i][index_j]=brr[index_i+1][index_j];
brr[index_i+1][index_j]=temp;
index_i++;
}
System.out.println("移动后的二维数组为:");
for(int i=0;i<brr.length;i++){
for(int j=0;j<brr[i].length;j++){
System.out.print(brr[i][j]+"\t");
}
System.out.println();
}
break;
case "stop":
result=1;
break;
}
}while(result==0);
}
}