Sha256: 97497fa0a37f8ba571bdb6d3b661cdeef752ee6352180aedc73286c559dee9a8

Contents?: true

Size: 996 Bytes

Versions: 2

Compression:

Stored size: 996 Bytes

Contents

# Possible Improvements

Possible improvements to try out in the implementation :)

## Playout speed

### Board representation
* Reuse stones instead of creating new ones (would probably require a separate move class)
* just use symbols on the board instead of full fledged objects
* use a one dimensional array as the board (can map back to original using modulo etc.)
* use multiple bitmasks (or a bigger one) to represent board state (we have 3 states so a simple mask won't do)
* neighbour_colors methods

### Group
* remove references to stones/liberties from obsolete groups (when it is merged in another group or taken off the board)
* in liberties, don't point to stones but point to groups (be careful as no group is nil... and that then is not good with hash lookups)

### Move gen
* check self atari?

### Scoring
* use more efficient scoring algorithm (michi floodfill like?)

### Move generation
* sensibly choose moves and not just that random barrage... possiby using an Enumerator

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rubykon-0.3.1 POSSIBLE_IMPROVEMENTS.md
rubykon-0.3.0 POSSIBLE_IMPROVEMENTS.md