Pick a project — type it, watch it come alive. Progress is stored only in your browser.
打真實的程式碼 — 看著它在旁邊活起來。
檔案不會離開你的瀏覽器 — 全部在本機處理。
Pick a project — type it, watch it come alive. Progress is stored only in your browser.
Type Quest 是一個「有產出」的程式碼打字練習:每份教材都是一個小而完整的前端作品(會走的數位時鐘、彈跳球動畫、CSS 載入動畫……),而你打的程式碼就是實際執行的程式碼。簡單的關卡邊打邊長 — 預覽隨著你的進度逐行成形;困難的關卡則憋到最後一刻,打完最後一個字元的瞬間,完成的作品爆發式地渲染出來。你完成的不是一次打字測驗,而是一個真的能動的東西,還能把它下載成單一 HTML 檔帶走 — 一字一鍵親手打出來的作品。
打字引擎的數字誠實不灌水:不自動跳過難打的字元、退格鍵有真實代價、顯示的 WPM 是扣掉未修正錯誤的淨 WPM。行首縮排自動處理,讓你專注在有意義的字元上。連續打對會累積連擊倍率,每個正確字元會沿五聲音階往上彈一個音(連擊升高八度),通關時還有 8-bit 小號曲慶祝。
每次練習結束都有一份儀器風格的結算報告 — 全程 WPM 曲線、逐鍵延遲熱圖、最慢符號 Top 5、準確率、連擊峰值 — 而你的進度會在本機累積:每課最佳 WPM、跨場次的成長曲線、最拖累你的弱鍵統計。這一切只存在你瀏覽器的 localStorage:不上傳、不需帳號,一顆按鈕就能全部清除。
魔王戰是整條線的高潮。你打的不是片段,而是一整個能跑的專案,魔王還會全程反擊:施放「突進」攻擊要你限時衝刺到標記字元、施放「凝視」詛咒要你在時限內零失誤、螢幕震動、故意騙你的「typo 陷阱」(顯示的字元是假的),還可能有整場時限。你的打錯會替魔王的必殺技充能;持續高連擊則替你自己的必殺充能。預覽會鎖到最後一個字元才渲染 — 打完作品就是致命一擊,用你親手打出來的作品在畫面上擊倒魔王。連擊現在也直接驅動音樂:鼓點脈衝墊在你的打字底下,連擊層級越高疊上 bassline 與旋律伴奏(節奏跟著你的打字速度呼吸),斷連擊就剝回只剩鼓點。
所有教材程式碼都是為本站離線生成的原創程式碼,沒有抓取或重用任何第三方程式碼。每份教材都以一致的風格排版,並在上架前通過「能解析、真的能跑」的機器驗證。
Type Quest 現在不只涵蓋前端程式碼。TypeScript 教材完全可執行 —— 你打的是型別化的原始碼,即時預覽跑的是它離線轉譯後的 JavaScript。Python、C、C++、Go、Rust 與 Java 則是純打字教材:瀏覽器無法執行它們,因此沒有即時預覽,遊玩畫面也會如實說明 —— 回饋就是打字練習本身,內容是慣用且依難度分級的片段(用 channel 的 Go worker pool、帶生命週期與 match 的 Rust 泛型堆疊、Java 的 stream 處理、C++ 的樣板與 STL 等)。每種語言都以自己的慣例排版 —— 4 空格縮排,或 Go 的 gofmt tab;tab 和空格一樣會被引擎當作行首縮排自動跳過,所以你不必打它。由於瀏覽器內的解析器無法像檢查 Web 教材那樣驗證這些語言,每份純打字片段都在上架前經過人工審閱,教材清單上方也有語言篩選列可直接跳到你想練的語言。
教材庫同時也是一張地圖:每種專案類型是一個「區域」,各自有自己的難度階梯,打完一階就解鎖下一階 —— 不必先精通一個區域才能探索另一個。魔王關(The Chrono Keeper、The Brick Warden)是這張地圖上的主題關卡:每個魔王會在你至少碰過通往它的每個區域後解鎖;如果同一段路上不只一個魔王,還要先打倒前一個魔王。每打通一課(不論是不是魔王關),都會加進你的「作品收藏館」:一張附上你最佳成績與該作品縮圖的收藏卡,可以再次執行(同時只會有一個即時預覽在跑,頁面才不會卡)、開全螢幕、下載成 HTML,或重新挑戰整堂課。
診斷直接閉環成訓練。進度分頁畫出一張鍵盤形狀的熱圖,累積你所有場次的每一個鍵 — 橘色填色代表比你自己其他鍵慢、洋紅色邊框代表容易打錯(一個鍵要累積到最低嘗試次數才算數,開頭一次手滑不會被定罪)。根據這份側寫,「Train weak keys(弱鍵特訓)」會推薦程式碼最密集命中你弱點字元的課程,並明白告訴你為什麼:這堂課鎖定哪些字元、你目前在這些字元上的錯誤率。打完推薦課程後,會顯示這些鍵的訓練前後對照,接著看熱圖在往後的場次裡慢慢降溫。已經以目標 WPM 通關的課程會被排除 — 推薦永遠指向還有進步空間的地方。
長期回訪的機制補齊了整個循環。每日挑戰用當天日期的固定雜湊選出同一份教材 — 同一個 UTC 日曆日,每個造訪的人打到的都是同一課,完全不需要伺服器 — 通關一次就記錄當天成績,並顯示今天的 WPM 跟昨天比快了多少,以及目前連續完成的天數。通關教材、掃平一個專案類型的所有難度、打完每一堂 D5 課程、打倒魔王、達到某個 WPM 門檻、連續 7 天完成每日挑戰,或是把一個被標記的弱鍵訓練到錯誤率低於 5%,都會解鎖成就徽章 — 新解鎖時會立刻跳出提示,進度分頁的 Badges 區塊會永久列出每個已解鎖的徽章與解鎖日期。不論是一般練習、魔王戰還是每日挑戰的結算畫面,或是成就解鎖的提示,都能產生一張可分享的 PNG 結果卡 — 整個在你瀏覽器裡用 canvas 畫出來,不需要上傳任何東西 — 下載或直接交給裝置的分享選單。