} }; const color = moves .scan('white', oppositeColor); const board = Bacon.combineTemplate({ location: moves, color: color }) .scan(Board.empty(), (board, {color, location}) => board.placeStone(color, location)); return board; }; const moves = Bacon.fromEvent(window.document.body, 'click') .filter(e => e.target.classList.contains('goban-grid_space')) .map(e => e.target.dataset) .map(ds => ({x: parseInt(ds.x), y: parseInt(ds.y)})); const board = runGame(moves); const el = v .open('main') .open('h1') .text('Goban') .close() .append(board_view(board)) .run(); window.document.body.appendChild(el);
import v from 'v'; const lines = v .open('div', {'class': 'grid_lines grid_lines--horizontal'}) .each([0,0,0,0,0,0,0,0,0]) .open('div', {'class': 'grid_line grid_line--horizontal'}).close() .close() .close() .open('div', {'class': 'grid_lines grid_lines--vertical'}) .each([0,0,0,0,0,0,0,0,0]) .open('div', {'class': 'grid_line grid_line--vertical'}).close() .close() .close(); export default lines;