需求:要求在控制台打印一个值为1~9的普通二维数组,通过键盘操作使横排、竖排、斜排的和均为15.
需求分析:若要通过键盘操作使其移动到自己想要去的位置,首先因给数字设置一个指标,通过这个指标来确定我们要移动那个数字,当我们把一个数字移动到自己想要的位置后,我不想再让他改变,此时需要退出数字交换方法,重新移动指针,通过指针跳过该数字进行交换。因此,需要一个方法移动指针。
import java.util.Scanner;
public class SquaredUp {
public static void main(String[] argc){
//定义二维数组
int[][] arr={
{1,2,3},{4,5,6},{7,8,9}};
Scanner sc=new Scanner(System.in);
A a=new A();
bb(arr, a);
//对移动指针和交换数字进行一个重复循环,减少操作步骤
while(true){
if(judgeh(arr)==true){
System.out.println("答案正确");
bb(arr, a);
break;
}
System.out.println("是否要交换数字,是:0;其他数字:移动指针;");
int x=sc.nextInt();
if(x==0){
exchangArray(arr,a);
}else{
exchangPointer(a, arr);
}
}
}
//移动指针方法
public static void exchangPointer(A a,int[][] arr){
int i=a.x;
int j=a.y;