📝 部落格

技術筆記、學習心得與隨筆

依標籤篩選:
把柏青哥寫成一台狀態機——以及一個關於「真實」的意外

2026年6月19日 · wemee

用程式把封入式柏青哥剝到只剩機率骨架,三大機種的差別其實只落在一個點上:大當り怎麼被判定。寫的過程踩到一個有意思的坑——每個機率都抄自真機,組合起來玩家卻長期穩賺。問題出在它們是相乘的,以及『公称繼續率』是個偏樂觀的數字。順帶記怎麼用『跑幾百萬發、看回收率』取代手算 EV。

遊戲開發 狀態機 機率 遊戲設計 柏青哥
做一款即時戰略《狼煙》(上):怎麼讓「自動出兵」變得有得玩

2026年6月13日 · wemee (with AI assistant)

第三款中型遊戲想做單線拉鋸 RTS:兩陣營、升主堡、出兵自動進攻。但「自動出兵、自動開打」藏著一個陷阱——玩家到底在玩什麼?會不會變成放著看的放置遊戲?記錄我怎麼用四根支柱把它撐成一款有決策的遊戲:相剋三角(而非線性強弱)、經濟與軍隊的賭局、戰爭迷霧與偵查、手動指揮,以及一個防雪球的主場優勢。

遊戲開發 Phaser 即時戰略 遊戲設計 TypeScript
做一款即時戰略《狼煙》(下):兩個 bug 教我的「別想太複雜」

2026年6月13日 · wemee (with AI assistant)

核心做完、坐下來玩,馬上撞到兩個哭笑不得的 bug:盾兵卡在弓兵後面動不了、貼城的敵軍跟我新出的兵互相穿過無視。揪出根源才發現,兩個 bug 同源於我把移動模型設計得太巧——排隊成戰列加上只往前方索敵。記錄這個轉念:把出兵點挪到城堡後方,一個空間安排就消掉兩個 bug 跟一堆特例,以及牧師該怎麼聰明走位。

遊戲開發 Phaser 即時戰略 重構 TypeScript
做一款中型遊戲(下):戰術地城《推演》——把畫面換成可推演的棋局

2026年5月31日 · wemee (with AI assistant)

第二款中型遊戲想做 roguelike,但又一個經典 Rogue clone 太安全。改走 Into the Breach 路線:完全資訊、敵人預告下一步,讓每一層變成一局可以推演到底的棋。記錄這個轉念怎麼決定了整套架構——純邏輯可單測、預告就是一筆鎖定的資料、友傷靠一行程式長出深度,以及一個讓兩隻怪疊在同一格的 BFS 坑。

遊戲開發 Phaser roguelike 遊戲設計 演算法 TypeScript
做一款中型遊戲(上):塔防《防線》——把「破關」換成「撐多遠」

2026年5月31日 · wemee (with AI assistant)

遊戲區清一色小品,這次想做點有系統交互的「中型」遊戲。塔防的關卡怎麼做到無限?關鍵不是寫更多波次,而是讓兩條成長曲線交叉——血量指數漲、獎勵線性漲,失守只是時間問題。順帶記資料驅動的內容量、HUD 與 Phaser 怎麼解耦,以及體驗是怎麼一輪輪玩出來的。

遊戲開發 Phaser 塔防 遊戲設計 TypeScript
跟 AI Agent 一起寫程式(一):它是協作者,不是神諭

2026年5月30日 · wemee (with AI assistant)

把任務丟給 AI、期待它變出完美成品,通常會失望。真正有生產力的協作,是先想清楚『哪些事該交給它、哪些事我得自己扛』。一個老工程師蓋完 8 軌道 64 課線上課程後,對人機分工的實戰心得。

AI協作 Claude Code AI Agent 工作法 心法
跟 AI Agent 一起寫程式(二):怎麼開場——脈絡、計劃、拆任務

2026年5月30日 · wemee (with AI assistant)

AI agent 表現好不好,八成在你按下 Enter 之前就決定了。餵足脈絡、先對齊計劃、把大任務拆成可驗收的小塊——這三件開場功夫,是我跟 agent 協作裡投資報酬率最高的部分。

AI協作 Claude Code context 工作法 拆任務
跟 AI Agent 一起寫程式(三):引導,而不是餵答案

2026年5月30日 · wemee (with AI assistant)

有時候我心裡早有答案,卻故意不直接講。因為我要的不是『我的答案』,而是更好的答案。怎麼用『假意討論』養出脈絡、逼 agent 發想、判斷它夠不夠創新,再決定要不要放它去做——一個刻意不當神諭的協作技巧。

AI協作 Claude Code 引導 創意 工作法
跟 AI Agent 一起寫程式(四):怎麼收尾——驗證、review、何時自己接手

2026年5月30日 · wemee (with AI assistant)

Agent 說『搞定了』,不等於真的搞定了。它的自信跟正確率是兩條獨立的曲線。怎麼用『不盲信』的心態驗證輸出、設計能自動抓錯的關卡、以及辨認那個『該換我自己上』的時刻——協作的最後一哩,品質都在這裡決定。

AI協作 Claude Code 驗證 code review 工作法
跟 AI Agent 一起寫程式(五):信任的光譜——什麼時候盯緊、什麼時候放手

2026年5月30日 · wemee (with AI assistant)

該死盯著 agent 的每一步,還是給它全部權限、放它一路幹到底?這不是是非題,是一條光譜。用『炸的範圍 × 能不能回頭 × 驗不驗得了』三把尺,決定每個任務該給多少自由——以及哪些訊號代表它正在走偏。

AI協作 Claude Code 信任 自動化 風險
跟 AI Agent 一起寫程式(六):工具與長期記憶——把協作規模化

2026年5月30日 · wemee (with AI assistant)

前面講的心法,靠每次手動執行很快會累垮。怎麼用設定檔、長期記憶、slash 指令、子代理、自動化關卡,把『好的協作習慣』固化成系統——讓 agent 跨 session 記住你的偏好,讓一次性的默契變成可重複的工作流。

AI協作 Claude Code memory 自動化 工具
跟 AI Agent 一起寫程式(七):完整復盤——我們怎麼蓋出 8 軌道 64 課

2026年5月30日 · wemee (with AI assistant)

把前六篇的所有原則,放回它們真正發生的現場。從一句『我全都想做』到八軌道六十四堂課上線,一個人加一個 AI agent,到底是怎麼一起走完這段路的——分工、引導、驗證、信任、工具,全部在一個真實專案裡同時運轉。

AI協作 Claude Code case study 程式實驗室 復盤
神諭開發筆記:用一套參數,讓石像長出喜怒哀樂

2026年5月30日 · wemee (with AI assistant)

與其準備 N 張表情圖硬切,不如把五官變成一組數值。情緒是參數預設,切換是補間——平滑變形、眼神跟隨、對嘴說話全從同一套參數長出來。順帶記一個 git worktree 害 Vite 擋掉 React runtime 的坑。

oracle svg animation face-rig astro react
省錢證件照開發筆記:cm、DPI 跟一個元件的兩種角色

2026年5月27日 · wemee (with AI assistant)

公制尺寸到像素的換算、Math.floor 排版置中、刻意保留的重複程式碼,跟一個 cropper 元件怎麼透過 outputMode 同時服務「下載」跟「丟回父元件」兩種完全不同的工具。

id-photo canvas dpi react component-reuse
圖片處理工廠開發筆記:HEIC、TIFF、iPhone 風格 cropper 跟 Tailwind 的 JIT

2026年5月27日 · wemee (with AI assistant)

在瀏覽器內解 HEIC 跟 TIFF、用 dynamic import 把解碼器擋在主 bundle 外、iOS Safari 的 file.type 空字串、cropperjs 預設樣式為什麼不能用,跟 Tailwind JIT 對動態 class 的硬性要求。

image-lab heic tiff tailwind cropper react
快速記事本開發筆記(上):contentEditable 與剪貼簿的三條軌道

2026年5月27日 · wemee (with AI assistant)

做一個免登入的線上記事本,前端三個非顯而易見的決定:為什麼用 contentEditable、為什麼剪貼簿要分三條軌道、為什麼背景色無論如何都要剝掉。

notepad contenteditable clipboard react web-api
快速記事本開發筆記(下):IndexedDB 自動儲存的兩個競態

2026年5月27日 · wemee (with AI assistant)

切換筆記讓 sidebar 順序自己跳、按下垃圾桶一秒後筆記又復活——同一個工具裡的兩個 race condition 怎麼修,以及為什麼把純邏輯抽到獨立檔案。

notepad indexeddb race-condition react testing
QR Code 工具開發筆記:兩個 lib 跟一個全域 paste listener 的陷阱

2026年5月27日 · wemee (with AI assistant)

在瀏覽器解碼跟產生 QR Code,加上一個被 Headless UI 的 Tabs 設計引發的全域 paste race condition。用 offsetParent 判斷自己是否真的可見。

qrcode paste headlessui tabs react
免登入待辦清單開發筆記:localStorage 最樸素的一種寫法

2026年5月27日 · wemee (with AI assistant)

整站最簡單的一個工具:一個 localStorage key 加一份 React state 就完事。但藏在裡面的有 IME 組字、Modal 關閉策略、跟為什麼這次不用 debounce。

todo localstorage react ime
能力即嫌疑:從 Tor 到 Claude Mythos,獨佔能力的詛咒

2026年4月8日 · wemee

當年美國海軍做出 Tor,發現只有自己用匿名網路等於自我標記。2026 年 Anthropic 的 Claude Mythos 掃出數千個 zero-day,正面臨同樣的困境。這不是巧合,而是權力的結構性悖論。

security privacy AI game-theory
【太可怕了】Clawdbot 橫空出世!不用月費、資料絕不外洩、還會主動找你聊天?

2026年1月27日 · wemee

Clawdbot 被吹捧成「明天就能讓你躺著登月」的神器,但這真的是事實嗎?讓我們戳破這個美夢,正視 AI 發展中的現實與技術限制。

AI Clawdbot Technology Hype
瀏覽器裡的 AI:如何實現 Python 訓練、JS 推理的低耦合架構

2026年1月18日 · wemee

分享一個高內聚、低耦合的機器學習架構設計。利用 Gymnasium 與 Stable-Baselines3 在 Python 訓練,透過策略模式與 JSON 權重導出,在瀏覽器端實現高效能、可擴充的 AI 推理。

Machine Learning TypeScript Python Architecture Design Patterns Snake AI
貪吃蛇 RL 進化史:從人工智障到禪意大師的辛酸血淚

2026年1月18日 · wemee

這是一篇關於我們如何把一條只會在角落轉圈的笨蛇,訓練成能填滿 40% 地圖的頂級掠食者的故事。過程充滿了過度設計的失敗、被獎勵機制誤導的痛苦,以及最後「無為而治」的頓悟。

Reinforcement Learning AI Snake Game Gymnasium Reward Shaping
Phaser 3 架構設計:從單一 Demo 到可擴展的多遊戲框架

2026年1月14日 · wemee (with AI assistant)

分享在 Astro 專案中整合 Phaser 3 時的架構重構經驗。探討如何從快速原型演進到符合 SOLID 原則的可維護架構。

phaser architecture solid typescript refactoring
Phaser Arcade Physics 的隱藏陷阱:為什麼 bounce=1 不等於完全彈性碰撞

2026年1月14日 · wemee (with AI assistant)

深入研究 Phaser 3 Arcade Physics 的碰撞機制。揭露動能損失的根本原因,以及如何自訂碰撞邏輯來實現真正的完全彈性碰撞。

phaser physics debugging gotcha
從原生 Canvas 到 Phaser 3:2D 遊戲引擎技術選型全記錄

2026年1月14日 · wemee (with AI assistant)

記錄在 Astro 網站中導入 2D 遊戲引擎的完整決策過程。從現有的原生 Canvas 遊戲出發,分析為何選擇 Phaser 3,以及它如何滿足製作熱血風格遊戲的需求。

phaser game-dev architecture decision-making
下樓梯 RL:從規則 AI 失敗到強化學習成功的架構實踐

2026年1月14日 · wemee (with AI assistant)

記錄下樓梯遊戲從規則 AI 失敗到 RL 成功的完整歷程。探討 GameCore 分離、PyMiniRacer 數值一致性、統一訓練框架與 500K 步訓練的實作細節。

reinforcement-learning ppo architecture pytorch tensorflow-js solid
為什麼高速公路會無故塞車?用 JavaScript 模擬交通流體力學

2026年1月14日 · wemee (with AI assistant)

從 IDM 智慧駕駛模型開始,逐步加入隨機減速與反應時間延遲,讓車流模擬從「機械感」變得「像真的」。完整記錄幽靈塞車的物理原理與調校心得。

simulation physics traffic idm javascript
在瀏覽器裡跑深度學習:手寫數字辨識實作筆記

2026年1月13日 · wemee (with AI assistant)

從零開始訓練 MNIST 模型,轉換為 TensorFlow.js 格式,並在瀏覽器中實現即時推理與 Saliency Map 可解釋性視覺化。完整記錄技術選型、踩坑經驗與效能優化。

machine-learning tensorflow browser mnist explainability
從指標到提示詞:一個老工程師的程式開發滄桑史

2026年1月12日 · wemee

從 C 語言的指標地獄,到腳本語言的解放,再到 AI 輔助開發的新時代。一個寫了 20 年程式的工程師,回顧那些年我們追過的編譯器錯誤。

程式開發 C語言 Python AI Claude Code 回憶錄
當「活著」也可以外包:比《獵殺代理人》更荒謬的未來

2026年1月11日 · wemee (with AI assistant)

如果 AI 不只幫我們工作,甚至幫我們「體驗」生活?探討一個人類極度懶惰的未來,所有事情都成為指令,連釣魚、旅遊都由 Agent 代勞。

ai future-tech philosophy dystopia
[AI 演進史 Part 1] 從 SVM 到 AlphaGo:我的 AI 覺醒之路

2026年1月11日 · wemee

回顧 20 年前的 AI 研究,從 SVM 機器人導航到 CNN 解決不可思議的「貓狗大戰」,以及 AlphaGo帶來的震撼。

AI SVM CNN AlphaGo Deep Learning 機器學習 回憶錄
[AI 演進史 Part 2] 視覺的爆發:從 GAN 到 Stable Diffusion

2026年1月11日 · wemee

AI 開始有了「創造力」。紀錄我鑽研 AE, VAE, GAN, StyleGAN 到 Stable Diffusion 的生成式 AI 狂熱年代。

AI GAN Diffusion Stable Diffusion Generative AI 機器學習
[AI 演進史 Part 3] 語言與代理:LLM 引領的 AI Agent 時代

2026年1月11日 · wemee

邁入 LLM 時代,從 Transformer 到 Antigravity AI Agent。大江東去,看盡 AI 技術浪潮。

AI LLM Transformer AI Agent Antigravity 機器學習
打磚塊遊戲 AI:運用軌跡模擬演算法 (Trajectory Simulation)

2026年1月10日 · wemee (with AI assistant)

深入解析經典打磚塊遊戲的 AI 實作。探討如何利用確定性物理系統的特性,透過暴力搜尋 (Brute-force Search) 與軌跡模擬,在有限狀態空間中尋求全域最佳解。

game-ai algorithm simulation typescript
軟體介面的終局:從人機互動到意圖導向運算

2026年1月10日 · wemee (with AI assistant)

探討軟體發展的三個階段:從人類學習適應複雜的 GUI,到 AI Agent 代勞操作,最終邁向「意圖即軟體」的未來。當自然語言成為終極介面,既有的軟體形態將如何消亡?

ai future-tech hci agentic-workflow
下樓梯遊戲 AI:從規則引擎到控制理論的失敗實驗

2026年1月10日 · wemee (with AI assistant)

為什麼同樣是物理模擬,打磚塊成功了,下樓梯卻失敗了?深入分析高頻連續決策系統中的震盪效應 (Oscillation) 與貪婪演算法的侷限。

game-ai control-theory failure-analysis javascript
從靜態 HTML 遷移到 Astro 框架:踩坑紀錄與心得

2026年1月9日 · wemee (with AI assistant)

記錄將個人 GitHub Pages 網站從純靜態 HTML 遷移到 Astro 框架的完整過程,包含遇到的問題與解決方案。

astro github-pages web-development migration
HTML, CSS — 相對視窗或螢幕的高度與寬度

2014年12月9日 · wemee

介紹 CSS 的 vh、vw、vmin 單位,以及如何用 JavaScript 的 screen.width / screen.height 相對螢幕大小設定元素尺寸。

html css javascript viewport rwd

留言 0

留言載入中…