moves: [],
cursor: -1, //index of the move just played
lastMove: null,
+ touchLastClick: "",
firstMoveNumber: 0, //for printing
incheck: [], //for Board
inMultimove: false,
// Some variants make use of a single click at specific times:
const move_s = this.vr.doClick(square);
if (!!move_s) {
- if (!Array.isArray(move_s)) this.play(move_s);
- else this.$refs["board"].choices = move_s;
+ const playMove = () => {
+ if (!Array.isArray(move_s)) this.play(move_s);
+ else this.$refs["board"].choices = move_s;
+ }
+ if ("ontouchstart" in window) {
+ const squareId = "sq-" + square[0] + "-" + square[1];
+ const highlight = function(on, sq) {
+ let elt = document.getElementById(sq);
+ if (!!elt) {
+ if (on) elt.classList.add("touch-hover");
+ else elt.classList.remove("touch-hover");
+ }
+ }
+ // Touch screen (smartphone): require confirmation
+ const squareStr = square[0] + "_" + square[1]
+ if (this.touchLastClick == squareId) {
+ highlight(false, squareId);
+ playMove();
+ }
+ else {
+ highlight(true, squareId);
+ highlight(false, this.touchLastClick);
+ }
+ this.touchLastClick = squareId;
+ }
+ else playMove();
}
},
// "light": if gotoMove() or gotoEnd()