8 lines
401 B
JavaScript
8 lines
401 B
JavaScript
// Store identities, not coordinates: re-check each move against the latest board.
|
|
export class TapQueue {
|
|
constructor(){this.ids=[];}
|
|
add(id,activeId){if(id===activeId||this.ids.includes(id))return false;this.ids.push(id);return true;}
|
|
take(tiles){while(this.ids.length){const id=this.ids.shift(),tile=tiles.find(t=>t.id===id);if(tile)return tile;}return null;}
|
|
clear(){this.ids.length=0;}
|
|
}
|