bitCell(bitIndex, littleEndian?)

Returns the (row, col) coordinates of the cell corresponding to a given bitIndex in a bitboard, assuming row-major ordering.
By default, the index follows big-endian layout, where the most significant bit (MSB) maps to the top-left cell.
Set littleEndian to true to reverse this mapping, placing the least significant bit (LSB) at the top-left instead.

Example for a 2×3 quadrille:

  • Big-endian layout (default):
| 5 | 4 | 3 |
| 2 | 1 | 0 |
  • Little-endian layout:
| 0 | 1 | 2| 3 | 4 | 5 |

Calling bitCell(4) returns (0,1) in big-endian, and (1,1) in little-endian.

Syntax #

bitCell(bitIndex[, littleEndian])

Parameters #

ParamDescription
bitIndexNumber: the index of the bit to decode into (row, col) coordinates
littleEndianOptional Boolean: if true, interprets the bit index using little-endian layout
Also available as the static method Quadrille.bitCell(bitIndex, width = 8, height = 8, littleEndian = false), which allows computing cell positions independently of any specific quadrille.