小小手痒,写了一个立方体自动拼图软件。
需求:任意给出6块正方形图片,寻找能把它们作为一个立方体的6面拼接起来的方案。
拼接结果图示:

代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class CubeMatch {
// 返回整数数组is[]的全排列
public static List<int[]> permutation(List<int[]>list, int[] is) {
List<int[]> r = new ArrayList<int[]>();
if (list.size()==0)
r.add(Arrays.copyOfRange(is, 0, 1));
else
for (int i=0; i<list.size(); i++) {
int[] ois = list.get(i);
for (int j=0; j<=ois.length; j++) {
int[] nis = new int[ois.length+1];
for (int k=0; k<nis.length; k++)
nis[k] = k==j? is[0] : (k<j? ois[k]: ois[k-1]);
r.add(nis);
}
}
if (is.length==1) return r;
else {
int[] nis = Arrays.cop

本文介绍了一款自动拼图软件,该软件能根据6块正方形图片生成立方体拼接方案。通过输入立方体尺寸,程序会随机生成6张碎片,并遍历所有可能的拼接组合(5! × 8^5种),找到可行的解决方案。最终,软件将展示生成的拼图碎片和有效的拼接布局。
最低0.47元/天 解锁文章
620





