我有这个功能应该比较两个状态。类型状态是通用的。所以我的解决方案是成为一名代表:
Func<State, State, bool> identityFun
我在函数中作为参数传递,应该进行比较:
if(!node.checkIf(s, identityFun))
我试图解决的问题是8-Puzzle,所以在这种情况下,状态为int[,]
。在Main函数中,我定义了相同的函数:
private static bool identical(int[,] arg1, int[,] arg2) {
for(int i=0; i<arg1.GetLength(0); i++) {
for(int j=0; j<arg1.GetLength(1); j++) {
if (arg1[i, j] != arg2[i, j])
return false;
}
}
return true;
}
不幸的是,这不起作用。问题出在哪儿?