資源簡介
解魔方程序Java源碼,具體實現可以仔細研究一下,只體現了一下怎么調用,其實會調用函數就行了。

代碼片段和文件信息
package?main;
import?java.io.*;
import?java.nio.channels.*;//定義了各種通道,這些通道表示到能夠執行?I/O?操作的實體(如文件和套接字)的連接;定義了用于多路復用的、非阻塞?I/O?操作的選擇器
import?java.nio.*;
class?CoordCube?{
static?final?int?N_MOVES?=?18;
static?final?int?N_MOVES2?=?10;
static?final?int?N_SLICE?=?495;
static?final?int?N_TWIST?=?2187;
static?final?int?N_TWIST_SYM?=?324;
static?final?int?N_FLIP?=?2048;
static?final?int?N_FLIP_SYM?=?336;
static?final?int?N_PERM?=?40320;
static?final?int?N_PERM_SYM?=?2768;
static?final?int?N_MPERM?=?24;
static?final?int?N_COMB?=?70;
static?final?int?N_UDSLICEFLIP_SYM?=?64430;
static?final?long?N_HUGE?=?N_UDSLICEFLIP_SYM?*?N_TWIST?*?70L;//?9863588700
static?final?int?N_FULL_5?=?N_UDSLICEFLIP_SYM?*?N_TWIST?/?5;
static?final?int?N_HUGE_16?=?(int)?((N_HUGE?+?15)?/?16);
static?final?int?N_HUGE_5?=?(int)?(N_HUGE?/?5);//?1972717740
//?XMove?=?Move?Table
//?XPrun?=?Pruning?Table
//?XConj?=?Conjugate?Table
//?full?phase1
static?int[][]?UDSliceFlipMove?=?Search.USE_FULL_PRUN???new?int[N_UDSLICEFLIP_SYM][N_MOVES]
:?null;
static?char[][]?TwistMoveF?=?Search.USE_FULL_PRUN???new?char[N_TWIST][N_MOVES]
:?null;
static?char[][]?TwistConj?=?Search.USE_FULL_PRUN???new?char[N_TWIST][16]
:?null;
static?byte[]?UDSliceFlipTwistPrunP?=?null;?//?Search.USE_FULL_PRUN???new
//?byte[N_UDSLICEFLIP_SYM?*
//?N_TWIST?/?5]?:?null;
static?byte[]?HugePrunP?=?null;?//?Search.USE_HUGE_PRUN???new?byte[N_HUGE_5]
//?:?null;
//?phase1
static?char[][]?UDSliceMove?=?new?char[N_SLICE][N_MOVES];
static?char[][]?TwistMove?=?new?char[N_TWIST_SYM][N_MOVES];
static?char[][]?FlipMove?=?new?char[N_FLIP_SYM][N_MOVES];
static?char[][]?UDSliceConj?=?new?char[N_SLICE][8];
static?int[]?UDSliceTwistPrun?=?new?int[N_SLICE?*?N_TWIST_SYM?/?8?+?1];
static?int[]?UDSliceFlipPrun?=?new?int[N_SLICE?*?N_FLIP_SYM?/?8];
static?int[]?TwistFlipPrun?=?Search.USE_TWIST_FLIP_PRUN???new?int[N_FLIP
*?N_TWIST_SYM?/?8]?:?null;
//?phase2
static?char[][]?CPermMove?=?new?char[N_PERM_SYM][N_MOVES];
static?char[][]?EPermMove?=?new?char[N_PERM_SYM][N_MOVES2];
static?char[][]?MPermMove?=?new?char[N_MPERM][N_MOVES2];
static?char[][]?MPermConj?=?new?char[N_MPERM][16];
static?char[][]?CCombMove?=?new?char[N_COMB][N_MOVES];
static?char[][]?CCombConj?=?new?char[N_COMB][16];
static?int[]?MCPermPrun?=?new?int[N_MPERM?*?N_PERM_SYM?/?8];
static?int[]?MEPermPrun?=?new?int[N_MPERM?*?N_PERM_SYM?/?8];
static?int[]?EPermCCombPrun?=?new?int[N_COMB?*?N_PERM_SYM?/?8];
static?void?setPruning(int[]?table?int?index?int?value)?{
table[index?>>?3]?^=?(0xf?^?value)?<((index?&?7)?<2);
}
static?int?getPruning(int[]?table?int?index)?{
return?table[index?>>?3]?>>?((index?&?7)?<2)?&?0xf;
}
static?void?setPruning2(int[]?table?long?index?int?value)?{
table[(int)?(index?>>?4)]?^=?(0x3?^?value)?<((index?&?0xf)?<1);
}
static?int?getPruning2(int[]?table?long?index)?{
return?table[(int)?(index?>>?4)]?>>?((index?&?0xf)?<1)?&?0x3;
}
stati
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????301??2018-06-21?17:26??.classpath
?????文件?????????383??2018-06-21?17:26??.project
?????目錄???????????0??2018-06-21?17:26??.settings\
?????文件?????????598??2018-06-21?17:26??.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2018-06-21?17:26??bin\
?????目錄???????????0??2018-06-21?17:27??bin\main\
?????文件???????17724??2018-06-21?17:27??bin\main\CoordCube.class
?????文件???????14881??2018-06-21?17:27??bin\main\CubieCube.class
?????文件????????2936??2018-06-21?18:02??bin\main\Main.class
?????文件???????12815??2018-06-21?17:27??bin\main\Search.class
?????文件????????8290??2018-06-21?17:27??bin\main\Util.class
?????目錄???????????0??2018-06-21?17:26??src\
?????目錄???????????0??2018-06-21?17:27??src\main\
?????文件???????22457??2018-06-21?17:27??src\main\CoordCube.java
?????文件???????21569??2018-06-21?17:27??src\main\CubieCube.java
?????文件????????2636??2018-06-21?18:02??src\main\Main.java
?????文件???????24455??2018-06-21?17:26??src\main\Search.java
?????文件???????11327??2018-06-21?17:27??src\main\Util.java
評論
共有 條評論