- let firstRow = document.querySelector(".game > .row");
- const squareWidth = (!!firstRow
- ? document.querySelector(".game > .row").offsetWidth / sizeY
- : 40); //arbitrary value (not relevant)
- const choices = h(
- 'div',
- {
- attrs: { "id": "choices" },
- 'class': { 'row': true },
- style: {
- "display": (this.choices.length > 0 ? "block" : "none"),
- "top": ((sizeY/2)*squareWidth+squareWidth/2) + "px",
- "width": (this.choices.length * squareWidth) + "px",
- "height": squareWidth + "px",
- },
- },
- this.choices.map(m => { //a "choice" is a move
- return h('div',
- {
- 'class': {
- 'board': true,
- ['board'+sizeY]: true,
- },
- style: {
- 'width': (100/this.choices.length) + "%",
- 'padding-bottom': (100/this.choices.length) + "%",
- },
- },
- [h('img',
- {
- attrs: { "src": '/images/pieces/' +
- V.getPpath(m.appear[0].c+m.appear[0].p) + '.svg' },
- 'class': { 'choice-piece': true },
- on: {
- "click": e => { this.play(m); this.choices=[]; },
- // NOTE: add 'touchstart' event to fix a problem on smartphones
- "touchstart": e => { this.play(m); this.choices=[]; },
- },
- })
- ]
- );
- })
- );
- // Create board element (+ reserves if needed by variant or mode)