2
我想知道什麼是實現棋盤引擎的正確方法。到目前爲止,我對象棋引擎編程的基礎知識做了一些研究,並做了一些筆記,主要是諸如minimax,alphabeta,靜止搜索和高級評估函數等。如何正確使用位板
然後我拆我的項目分爲3個部分分別是:
- GUI
- 董事會代表
- 實現超越極小極大搜索和未來的體面評估函數,靜態位置
我使用位板來表示棋盤狀態,以節省代表棋盤和計算遊戲樹時的時間。這是我的問題所在。
因爲我不只是要複製別人的代碼,我試圖創建一個unsigned long
對其進行測試,但apparantly單個位丟失。
下面的代碼:
public static void main(String[] args) {
Long bitBoard = Long.parseUnsignedLong("9223372036854775807");
System.out.println("Number of bits in this 64-bit unsigned long: " + Long.bitCount(bitBoard));
System.out.println(Long.MAX_VALUE);
}
有人可以給我一個提示,我做錯了什麼,爲什麼我失去了一點?
所以基本上我試圖輸入一個很長的最大值然後我告訴程序給我的位數是'1'。我期望它給我64,但它拒絕這樣做,只給了我63,比我預期的少1。令人困惑... – JavaIsMyBae
將最大長數增加1無助於此。如果我這樣做,方法Long.bitCount()返回'1'。 – JavaIsMyBae