Conversation
Co-authored-by: acrosman <2972053+acrosman@users.noreply.github.com>
Co-authored-by: acrosman <2972053+acrosman@users.noreply.github.com>
|
@copilot The game needs several adjustments:
|
…images, sound, display range, progress fix) Co-authored-by: acrosman <2972053+acrosman@users.noreply.github.com>
…ling blank lines Co-authored-by: acrosman <2972053+acrosman@users.noreply.github.com>
All 8 items addressed in commit
|
|
@copilot Again, there are several adjustments to make:
|
Co-authored-by: acrosman <2972053+acrosman@users.noreply.github.com>
All three items addressed in commit
|
|
@copilot I do not see what's in the generated image in the response. The thumbnail is now right. The game briefly flashed one image and then looked like this: The images need to be scaled to the expected size. The grid should stay a grid. Check to make sure whatever you think is used to hold those spaces actually exists and is in the expected location. |
…ectly Co-authored-by: acrosman <2972053+acrosman@users.noreply.github.com>
Fixed in commit The fix adds three helpers to
This also benefits |
|
@copilot the player should only advance to the next level if they pick the right set of images three times in a row. |
… Speed Memory Co-authored-by: acrosman <2972053+acrosman@users.noreply.github.com>
Done in commit Changes:
|
|
@copilot That's better. Now we need to add the primary image to the instructions page so that players know what image to click on. Also when they click on the wrong image it should immediate re-run that level not let them finish. Finally, the grid moves vertically because of the message displayed at the top. That message isn't helpful, remove it. |
…ve countdown banner Co-authored-by: acrosman <2972053+acrosman@users.noreply.github.com>
Done in commit
|




Adds a second game — High Speed Memory — following the existing plugin architecture. Players briefly see a square grid of cards revealed, then must locate the three
Primary.jpgcards hidden among Distractor images from memory. Grids grow as unbounded squares and reveal time shrinks each level.Game logic (
game.js)Primary.jpgat random positions; remaining cells are filled with a random mix ofDistractor1.jpgandDistractor2.jpgROUNDS_TO_LEVEL_UP = 3); a wrong guess resets the streak and immediately restarts the current roundgenerateGrid,isPrimary,addCorrectGroup,completeRound,resetConsecutiveRounds,getConsecutiveCorrectRounds,getGridSize,getDisplayDurationMsPlugin lifecycle (
index.js)startRound()— generates grid, renders all cards face-up using image files, hides after display durationhandleCardClick()— clicking a Primary card marks it as found (green); clicking a Distractor resets the level-up streak, plays a Web Audio buzzer, and restarts the round after a 900ms pause; finding all 3 Primary cards triggersonRoundCompleteonRoundComplete()— callscompleteRound(); announces streak progress ("2 of 3 in a row — 1 more to level up!") or a level-up message; starts the next round after a brief pause70vminsizing (reliable square across all viewport sizes)bsx:return-to-main-menuto restore the game selectorwindow.apiprogress save loads existing data first then saves with{ playerId: 'default', data: {...} }format — errors are swallowedUI (
interface.html/style.css)aria-liveregions for score/feedback, keyboard nav (Tab + Enter/Space), visible focus indicators, all contrast ratios ≥ 4.5:1; aria-labels updated per card state (face down / revealed / matched)Primary.jpg(with green border) so players know what image to find before starting70vminfor a reliable square layout; the reveal-phase countdown banner has been removed to prevent the grid from shifting verticallyApp shell (
interface.js)injectGameStylesheet(gameId)— injects<link id="active-game-stylesheet" rel="stylesheet">into<head>when a game is loaded, so game-specific CSS Grid layout and card styles apply correctlyremoveGameStylesheet()— removes the active stylesheet when returning to the main menuloadAndInitGame()helper — centralizes HTML injection, CSS injection, and plugininit()call; used by allgame:selecthandlers and thebsx:return-to-main-menureturn pathfast-piggie) whose stylesheets were also never loadedImages
Primary.jpg,Distractor1.jpg,Distractor2.jpg, andthumbnail.jpg— replace with final artwork when readyTests
tests/game.test.js— unit tests with 100% function coverage ongame.js, includingROUNDS_TO_LEVEL_UP,resetConsecutiveRounds, andgetConsecutiveCorrectRoundstests/index.test.js— integration tests covering full lifecycle, timer clearing, keyboard events, Audio API, return-to-menu event dispatch, streak reset on Distractor click, round restart on wrong guess, streak display update, andwindow.apiresolve/reject pathsOriginal prompt
Created from VS Code.
📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.