0

如果我无法解释任何事情,请放轻松。

基本上我想知道如何记录交换四面体网格中的所有点。[参考: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;
}

此方法在交换之前调用一次,在交换之后再次调用。

很抱歉解释了很长时间,这只适用于那些将来会偶然发现这一点的人。

4

1 回答 1

0

存储它的最简单方法是使用Map<Swap, Int>whereSwap是一个包含i1, j1, i2,的类j2(并且定义了equalshashCode方法)。“好的”交换是Swap具有最大价值的 s。

或者,您可以使用一个 4 维数组来存储交换值,由交换进行索引,即swapValues[i1][j1][i2][j2]交换的值i1j1i2, j2

我不确定除了存储交换之外你还打算做什么,所以很难说如果没有更多信息,存储“好”交换的更好方法是什么。

于 2013-01-13T04:30:10.830 回答