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