Java 在网格上尝试所有可能的配对,并记录对配对的改进

Java 在网格上尝试所有可能的配对,并记录对配对的改进,java,Java,如果我什么都解释不清楚,请别着急 基本上,我希望了解如何保存在四面体网格中交换所有点的记录。[参考:http://gamegix.com/tetravex/game] 我已经创建了网格,并从随机解决方案中添加了瓷砖。目前,我可以交换一对用户生成的磁贴,但无法作为自动过程进行交换 人们通常如何自动交换项目的过程?并记录“良好”的掉期交易 swap方法接受以下参数: ems.swap(i1, j1, i2, j2); 其中,i1,j1是要交换的第一个磁贴,i2,j2是要交换的第二个磁贴 完成后,对

如果我什么都解释不清楚,请别着急

基本上,我希望了解如何保存在四面体网格中交换所有点的记录。[参考:http://gamegix.com/tetravex/game]

我已经创建了网格,并从随机解决方案中添加了瓷砖。目前,我可以交换一对用户生成的磁贴,但无法作为自动过程进行交换

人们通常如何自动交换项目的过程?并记录“良好”的掉期交易

swap方法接受以下参数:

ems.swap(i1, j1, i2, j2);
其中,
i1,j1
是要交换的第一个磁贴,
i2,j2
是要交换的第二个磁贴

完成后,对瓷砖进行评估

 public static int AssessSwapTiles(EdgeMatchSolution ems, EdgeMatch em)
{
    int a = em.getRows();
    int b = em.getColumns();
    int swaptotal = 0;

    for (int i = 0; i < a; i++)
    {
        for (int j = 0; j < b; j++)
        {
            int numSides = ems.sidesMatched(i,j);
            System.out.print(numSides + " ");
            swaptotal += numSides;
        }
        System.out.println();
    }
    System.out.println(swaptotal);
    return swaptotal;
}
公共静态int评估选项(EdgeMatch解决方案ems、EdgeMatch em)
{
int a=em.getRows();
int b=em.getColumns();
int-swaptotal=0;
for(int i=0;i
此方法在交换之前调用一次,在交换之后调用一次


对于冗长的解释,我深表歉意,这只适用于那些将来偶然发现这一点的人。

存储这一点的最简单方法是使用一个类,其中
交换
是一个类,它包含
i1
j1
i2
j2
(并且定义了
等于
hashCode
方法)。“良好”掉期是价值最大的
掉期
s

或者,您可以使用一个四维数组来存储交换值,通过交换进行索引,即
swapvalue[i1][j1][i2][j2]
将交换
i1
j1
i2
j2
的值


除了存储掉期,我不确定您打算做什么,因此很难说在没有更多信息的情况下,存储“好”掉期的更好方法是什么。

我不熟悉Map,只希望使用所谓的基础知识,建立自己的方法,因此您能建议一种替代方法吗。很抱歉看起来很粗鲁。另外,我正计划使用最好的掉期交易,但希望为将来保留一份记录references@JohnFillipe我用你的请求更新了OP。但是,我建议您阅读Java collections api(我为
Map
链接了该api),因为它们通常是任何Java程序不可分割的一部分。