diff options
| author | LLLL Colonq <llll@colonq> | 2026-08-29 04:06:51 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-08-29 04:06:51 -0400 |
| commit | 761a3172bf4c15aed3836e4d1cd6f815b651b0e0 (patch) | |
| tree | cc90491529e83349d84d42a8e9982e5f0f38338e /2026/games/liquidcake1/queue.mjs | |
| parent | 0d2d8cd897e94bd94e0b3ae7c6ce9aa580a44a0a (diff) | |
Fix
Diffstat (limited to '2026/games/liquidcake1/queue.mjs')
| -rw-r--r-- | 2026/games/liquidcake1/queue.mjs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/2026/games/liquidcake1/queue.mjs b/2026/games/liquidcake1/queue.mjs new file mode 100644 index 0000000..e6c3efe --- /dev/null +++ b/2026/games/liquidcake1/queue.mjs @@ -0,0 +1,30 @@ +export class Queue { + /* Structure is a (hopefully short) list of (longer) lists. + * Queue to the last list. + * Hold index into first list. + */ + length = 0; + index = -1; + content = [[]]; + max_len = 100; + push(x) { + let content = this.content; + if (content[content.length - 1].length > this.max_len) { + content.push([]); + } + content[content.length - 1].push(x); + this.length += 1; + } + pop() { + this.index += 1; + if (this.index >= this.content[0].length) { + if (this.content.length == 1) { + throw("empty"); + } + this.content.shift(); + this.index = 0; + } + this.length -= 1; + return this.content[0][this.index]; + } +} |
