我正在編程一個國際象棋AI,並且遇到了一個我實現的方塊表的問題。由於我只想每面有一個平方的表,我需要一個函數來翻轉保存x軸值的一維數組。例如,該陣列:關於X軸翻轉一維陣列板表示法
[ 2, 4, 5, 3, 5, 0, 1, 4, 2 ]
將被翻轉以:
[ 1, 4, 2, 3, 5, 0, 2, 4, 5 ]
我使用使用以下方法的嵌套循環來實現此爲0x64陣列(注:實施例僅爲3x3,但以下功能調整爲8x8);然而,我想知道是否有更有效率的東西,因爲時間是一個問題。
public int[] gridFromPerspective(int[] grid){
int[] flippedGrid = new int[64];
for(int i = 7; i < 32; i += 8){
for(int j = 0; j < 8; j++){
flippedGrid[i-j] = grid[63-(i-j)];
flippedGrid[63-(i-j)] = grid[i-j];
}
}
}
我知道你可以翻轉了一下板輕鬆而高效地使用sq' = sq^56
,但我不能肯定我怎麼能在一維數組的情況下,使用這種技術。任何建議將被認真考慮。
非常詳細的回覆,非常感謝。 – nman