iorch / AmiGo

A gobot inspired in AlphaGo
MIT License
5 stars 1 forks source link

Definir arquitectura #4

Open iorch opened 8 years ago

iorch commented 8 years ago

@magania: Quiero empezar a pasar las funcionalidades que están en sgf2board.py a c++. Voy a empezar creando la clase Group. Pero me surgió una duda con Kifu. ¿Tu idea es que Kifu sea una clase muy sencilla, que sólo guarde la información de la partida? ¿O que, además de guardar esa información, también sea capaz de darte el status del juego dado un número de jugada? La segunda opción es lo que hace mi clase Kifu en sgf2board.py. Si prefieres la primera opción, ¿significa que la clase board_layer tomará un objeto Kifu y regresará alguna característica del tablero en determiando moviemiento?

magania commented 8 years ago

@iorch si, lo que se me ocurre es que kifu sea solo como los sgf tambien te puede dar el status de un juego, el status esta representado por la clase board la clase board_layer es un bitset(un bit por cada posicion) que indica algo. Un board esta compuesto por varias board_layers una para las piezas negras, una para las blancas, una para las posiciones vacias, una para las libertades de la izquierda ... etc.

Kifu regresa un board como tu clase sgf2board, pero el board no es parte de Kifu. Como en el metodo final_board, este crea un board le aplica todos los movimientos del kifu y te regresa el board final.

Todas las reglas van en board, cuando aplicas un movimiento, tiene que aplicar todas las reglas y modifical las board_layers correspondientes.