尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Turtle Typers is a multiplayer typing race. One screen acts as the “board”: it shows the lobby, a live race where each player’s turtle moves based on typing progress, and a podium for the top finishers. Players use their own devices (often phones) to join, enter a name, and type the same prompt as quickly and accurately as they can. Better typing moves your turtle forward; everyone sees the race unfold together in real time.
The app is a small full-stack demo: a Node.js server with Express serves the UI and hosts a WebSocket server (ws) so the display and all player clients stay synchronized. The front end uses Vue 3 from a CDN. It works well for classrooms, parties, or any setting where you want a shared big screen plus personal keyboards.
Player join screen (teal lobby, Turtle Typers title, scan-to-join QR, and name field):
http://localhost:3000/ — lobby, live race board, and podium for 1st–3rd place. The lobby shows a 6-digit game PIN (like Kahoot).http://localhost:3000/join on each device, type the game PIN and a name, and join. The host starts the round from the display after everyone is in.Each host screen gets its own game PIN, so several games can run at once without mixing players.
The server in index.js serves static files from public/ and runs a WebSocket server on the same HTTP port so all clients stay in sync.
npm install
node index.js
The app listens on port 3000. You should see Server is ready... in the terminal.
There is no npm start script in package.json yet; use node index.js or add a start script if you prefer.
The front end in public/app.js connects to a WebSocket URL at the top of connectSocket. For local play, use the same host as your server, for example:
this.socket = new WebSocket("ws://localhost:3000");
Comment out or remove any production URL (for example a hosted wss://… endpoint) while testing locally. Use wss:// only when the page is served over HTTPS.
| Path | Role |
|---|---|
index.js | Express app, static hosting, WebSocket game state |
public/index.html | Main display / host UI |
public/player.html | Player phone UI |
public/app.js | Vue app, socket client, game flow |
The HTML references images (for example a QR code on the lobby screen and artwork on the player page). If those files are not in public/, replace the paths or add the images there. Sound effects are loaded from /sounds/ in app.js; add those files under public/sounds/ if you want audio.
See package.json (ISC unless you change it).