表示棋盘的最有效方法

时间:2015-10-24 07:44:27

标签: java chess

我有一个用Java编写的国际象棋程序。目前我正在使用2d char数组来表示棋盘。大写字母表示白色和小写表示黑色。我应该使用字节数组来减少内存使用量吗?或者也许是枚举?谢谢。

1 个答案:

答案 0 :(得分:3)

简而言之:最有效和最专业的方法是使用Bitboards。

基本上,有三种表示经常使用的棋盘的方法:

  • 8x8二维数组: 缓慢但易于维护

  • 10x12 1维数组:

  • 更快,更有点棘手
  • 位棋盘: 它们是最快的方法,也用于专业引擎,如Stockfish或Rybka。基本上,每个数字类型都需要64位uint,其中每个位代表一个字段。有关更多信息,我建议使用chessprogramming wiki或google =>位板。