issues
search
stepney141
/
dagaz-v2
JavaScript game engine for creating and playing various boardgames
MIT License
0
stars
1
forks
source link
ビット演算を用いた部分を書き換える
#17
Closed
stepney141
closed
1 year ago
stepney141
commented
1 year ago
対象になりそうなもの
Zobrist Hash (
zobrist.ts
)
(もし導入するのなら) BitBoard
なぜ必要か
JavaScript のビット演算子は数値を32ビット整数に変換し、それを超える範囲は切り捨てられる [1][2][3]
このため、正しいハッシュ値を求めることが出来ない場合がある [3][4]
Zobrist hash における解決策の例
複数個のハッシュ値を組み合わせて使う [3]
TypedArray を使うという解決策 [4]
関連情報
[1]
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_AND
[2]
https://qiita.com/uhyo/items/f9abb94bcc0374d7ed23#javascript%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E6%95%B0%E5%80%A4%E6%BC%94%E7%AE%97
[3]
https://www.chessprogramming.org/Zobrist_Hashing#Lack_a_True_Integer_Type
[4]
https://stackoverflow.com/questions/24813487/implementing-zobrist-hashing-in-javascript
stepney141
commented
1 year ago
最終的には「複数個のハッシュ値を組み合わせて使う」という方法を用いた
理由:TypedArrayだとビット演算の実装がめんどくさい
対象になりそうなもの
zobrist.ts
)なぜ必要か
関連情報