bitboard

    -3熱度

    1回答

    我想編程我的第一個國際象棋引擎,我正在使用chessprogramming.wikispaces.com作爲資源。我的第一個嘗試是考慮到他們的性能特點以及深藍等流行引擎使用位板的事實,然而,我發現實施非常困難,並得出結論,我應該從我的第一臺發動機開始做小。我反而喜歡用8乘8陣列,但我想知道我的引擎與陣列相比使用位置板的強度。如果可能的話,請使用8乘8陣列爲發動機的最大強度提供大致的國際象棋評級。

    0熱度

    1回答

    好的我已經閱讀了很多網絡上的東西,其中大部分使用沒有unsigned int的Java。我正在研究具有unsigned int的Objective-C。 讓我們考慮以下情況。 板是這樣的: A1是在左下角和是最顯著位和H8是在右上角,是最顯著位。 我已經構建了棋盤上所有位置的所有棋子的位移掩碼。 假設下面的簡單情況: 遊戲將開始。所有作品都在他們的初始位置。 用戶嘗試將G1上的騎士移動到E2。 顯

    0熱度

    1回答

    所以我一直在圍繞一個問題纏繞我的頭。 我目前正在用Java編寫一個基於棋盤的國際象棋引擎(它一直在計算一切)。到目前爲止,所有的棋子/王/騎士移動都按預期工作,沒有錯誤。 我需要幫助理解的是滑塊移動的一代。我已經爲每個方塊/塊生成了一系列空板移動。根據我目前的理解,我還需要開發一個包含每個平方的每個可能佔用的數組 - 然後以某種方式根據各種方法查找該數組。 這種想法正確嗎?是從0到2^63中選取每

    0熱度

    2回答

    我正在編程一個國際象棋AI,並且遇到了一個我實現的方塊表的問題。由於我只想每面有一個平方的表,我需要一個函數來翻轉保存x軸值的一維數組。例如,該陣列: [ 2, 4, 5, 3, 5, 0, 1, 4, 2 ] 將被翻轉以: [ 1, 4, 2, 3, 5, 0, 2, 4, 5 ] 我使用使用以下方法的嵌套循環來實現此爲0x64陣列(注:實施例僅爲3x3,但以下功能調整爲8x8);然而,我想知道

    0熱度

    1回答

    我試圖在Swift中實現位板,並試圖將一個64位整數存儲到UInt64中,併發生溢出錯誤。 var white_queen_bb:uint64 = 0001000000000000000000000000000000000000000000000000000000000000 as UInt64; Integer Literal '1000000000000000000000000000000

    0熱度

    1回答

    我正在一個2玩家棋盤遊戲(如連接4),與參數電路板尺寸^h,瓦特。我想用hw大小的棋盤來檢查獲勝條件。 在象棋這樣的遊戲中,棋盤大小是固定的,棋盤通常用某種64位整數表示。當h和w不是恆定的,也許很大(假設30 * 30)是位面板的好主意?如果是這樣,那麼C/C++中的任何數據類型是否可以處理大型比特幣保持其性能? 因爲我目前正在使用python,所以這種語言的解決方案也被讚賞! :) 在此先感謝

    2熱度

    1回答

    我想知道什麼是實現棋盤引擎的正確方法。到目前爲止,我對象棋引擎編程的基礎知識做了一些研究,並做了一些筆記,主要是諸如minimax,alphabeta,靜止搜索和高級評估函數等。 然後我拆我的項目分爲3個部分分別是: GUI 董事會代表 實現超越極小極大搜索和未來的體面評估函數,靜態位置 我使用位板來表示棋盤狀態,以節省代表棋盤和計算遊戲樹時的時間。這是我的問題所在。 因爲我不只是要複製別人的代碼

    1熱度

    2回答

    在我的國際象棋引擎,使用位棋盤爲代表的董事會的狀態的棋盤個人移動,產生一氣呵成的假冒合法移動一大塊,一個棋盤是結果。例如: 走卒: 小棋盤魔術後來: 在端部的棋盤是一個簡單的可能的移動塊。引擎如何通常採用這種棋盤,並從中產生個人動作?我是否必須迭代每一位以檢查它是否已設置?迭代一個棋盤似乎藐視使用位面板的目的,這就是爲什麼我有點懷疑。 有沒有更好的方法?

    1熱度

    1回答

    我想打印出來,我正在實現使用位棋盤一盤棋。我很難想象如何去顯示8x8網格和遊戲塊。 這裏的鏈接到tutorial我下面的(雖然不完整)。 @white_pawn = 0b0000000000000000000000000000000000000000000000001111111100000000 @white_rook = 0b00000000000000000000000000000

    4熱度

    3回答

    我試圖處理位板,這需要我在64位無符號整數中設置一個特定的位。要設置位我,我執行一個按位或與有問題的位板,左移數字。 ​​ 它工作正常,從0位到第31位,但未能對位工作32到63我懷疑這是因爲右側的評價恰好是在32位整數。因此,我嘗試了一個臨時變量。 uint64_t temp = 0ULL; temp |= 1 << i; 也許它仍然評估作爲一個32位整數的右側,或者這是我無法弄清楚的其他