let boardBCR = null;
let bagBCR = null;
let moveCMD = null;
+ let rackChanged = false;
function getLetter(l) {
const tile = l.getElementsByClassName("tile")[0];
};
if (moveCMD.to === moveCMD.from) {
- if (moveCMD.indexTo !== moveCMD.indexFrom) {
- sendCmds([
- (moveCMD.from === "rack")
- ? moveRack
- : moveCMD
- ]);
+ if (moveCMD.indexTo === moveCMD.indexFrom) {
+ if (rackChanged) {
+ sendCmds([moveRack]);
+ }
+ } else if (moveCMD.from === "rack") {
+ sendCmds([moveRack]);
+ } else if (rackChanged) {
+ sendCmds([moveCMD, moveRack]);
+ } else {
+ sendCmds([moveCMD]);
}
} else if (moveCMD.to === "rack") {
moveRack.rack[moveCMD.indexTo] = "";
sendCmds([moveRack, moveCMD]);
} else {
- // setting the rack is not necessary in most cases, but the
- // player could have moved some letters of the rack when moving
- // a tile to the board so let's set the rack in any case
- // FIXME this could be improved
- sendCmds([moveCMD, moveRack]);
+ if (rackChanged) {
+ sendCmds([moveCMD, moveRack]);
+ } else {
+ sendCmds([moveCMD]);
+ }
}
}
if (!tile) {
let j = i;
while (j > index) {
+ rackChanged = true;
playerLetters[j].appendChild(
playerLetters[j - 1].getElementsByClassName("tile")[0]
);
loadAudio();
+ rackChanged = false;
movingTile = e.currentTarget;
tileInitMouseCoords = e;