【问题标题】:Chess Bitboard Population [closed]国际象棋位板人口[关闭]
【发布时间】:2013-10-22 11:07:13
【问题描述】:

在某些位板国际象棋引擎中,位板的初始化如下:

white_pawns = 0x000000000000ff00
black_pawns = 0x00ff000000000000
white_knights = 0x000000000000042
black_knights = 0x4200000000000000
white_bishops =0x000000000000024
black_bishops = 0x2400000000000000
white_rooks = 0x000000000000081
black_rooks = 0x8100000000000000
white_queens = 0x0000000000000008
black_queens = 0x0800000000000000
white_king = 0x0000000000000010
black_king = 0x1000000000000000

有人能解释一下这些片段是如何得到它们各自的十六进制值的吗?

【问题讨论】:

    标签: hex chess bitboard


    【解决方案1】:

    每个位都用于表示棋盘上的一个位置,棋盘是一个 8x8 网格。

    由于使用的是位,因此如果您以二进制而不是十六进制来查看它会更容易。例如,让我们看一下二进制中的white_pawns

    00000000000000000000000000000000000000000000000001111111100000000

    现在让我们把它分成八组:

    00000000
    00000000
    00000000
    00000000
    00000000
    00000000
    11111111
    00000000

    现在您可以清楚地看到黑色在顶部,白色在底部,1s 表示白棋开始时的棋子位置。

    作为第二个例子,让我们看看white_knights。它缺少一个0s(虽然它是无害的,但它的形式很糟糕),所以让我们把那个零加回去:0x00000000000042,它在二进制中看起来像这样:

    00000000000000000000000000000000000000000000000000000000001000010

    ...八人一组,如下所示:

    00000000
    00000000
    00000000
    00000000
    00000000
    00000000
    00000000
    01000010

    ...这确实是白人骑士会去的地方。

    【讨论】:

    • 哦,我明白了!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2022-06-17
    相关资源
    最近更新 更多