忘了是在哪一集七龍珠看到的
孫悟空認為要提升自己的戰鬥力
應該要從基礎修行做起
這樣才是正確的捷徑
最近寫程式似乎遇到了瓶頸
看來是要思考一下
如何重新訓練程式的基本功力吧
pretty code
2009年3月12日 星期四
傳說中的猜數字電腦版
以前一直不懂它的邏輯
終於在與 nb0 的奮鬥過程休息中把它搞懂
10*9*8*7 是有可能的數字組合
因為首位可以包含 0 ,故範圍從 0123 ~ 9876。
每次猜的過程,將所有組合與幾 A 幾 B 比對,去掉不符的組合。
逐漸篩選,直到猜出答案。
底下是電腦程式執行測試的結果:
Total 10000, Average 6, Max 10, Min 2.
Total 100000, Average 6, Max 10, Min 2.
Total 1000000, Average 6, Max 10, Min 2.
演算法上應該還有改進的空間,
需要加上額外的判斷才能減少 Max 10 的情況。
終於在與 nb0 的奮鬥過程休息中把它搞懂
10*9*8*7 是有可能的數字組合
因為首位可以包含 0 ,故範圍從 0123 ~ 9876。
每次猜的過程,將所有組合與幾 A 幾 B 比對,去掉不符的組合。
逐漸篩選,直到猜出答案。
底下是電腦程式執行測試的結果:
Total 10000, Average 6, Max 10, Min 2.
Total 100000, Average 6, Max 10, Min 2.
Total 1000000, Average 6, Max 10, Min 2.
演算法上應該還有改進的空間,
需要加上額外的判斷才能減少 Max 10 的情況。
2009年3月2日 星期一
EasyBuild 的誕生
因為 CPU 的 BSP 不能使用精靈建立捷徑
再加上第一次使用此 CPU
常常要參考前人留下來的 code
故需要不同版本好來比較
本來是參考舊專案的檔案來為每個 source 建立捷徑好方便 build code
但覺得每次都要為不同的 source 建立捷徑很累
故想要寫一個工具可以藉由選擇 source 路徑
自動將批次檔所需的參數帶入
便有了這個工具的雛型
後來因為需要 build 不同版本的 image 來測試
故又加上 multi-build 的功能
個人習慣使用 global 產生的 html 來 trace code
每個 html 上面都會有該檔案的路徑
因為想要複製路徑便直接用 ultraedit 來打開檔案
故又加上監控剪貼簿的功能
有時候下班回家
想 build code 又不想等待其他人 commit
故又加上定時 svn update 並 build code 的功能
因為不想花時間在等待 AK 複製及 svn 下載檔案
故又把 multi-build 的功能分成直接 build 及
自動複製 AK 和 svn 完才 build code
到此這個程式才算是有一點工具的味道
不過最令我滿意的不是程式功能
而是在每一次的改版中
把很多函數再拆解成小函數
757 行的程式有 32 個函數
不含 event 等事件
且程式碼都有適當的空白及括號
故每次新增功能
其實都不用花很多心力
直接呼叫現有的函數即可
雖然不是做到 C++ 的物件化
但還算可重覆利用就是
最後來看個圖吧
再加上第一次使用此 CPU
常常要參考前人留下來的 code
故需要不同版本好來比較
本來是參考舊專案的檔案來為每個 source 建立捷徑好方便 build code
但覺得每次都要為不同的 source 建立捷徑很累
故想要寫一個工具可以藉由選擇 source 路徑
自動將批次檔所需的參數帶入
便有了這個工具的雛型
後來因為需要 build 不同版本的 image 來測試
故又加上 multi-build 的功能
個人習慣使用 global 產生的 html 來 trace code
每個 html 上面都會有該檔案的路徑
因為想要複製路徑便直接用 ultraedit 來打開檔案
故又加上監控剪貼簿的功能
有時候下班回家
想 build code 又不想等待其他人 commit
故又加上定時 svn update 並 build code 的功能
因為不想花時間在等待 AK 複製及 svn 下載檔案
故又把 multi-build 的功能分成直接 build 及
自動複製 AK 和 svn 完才 build code
到此這個程式才算是有一點工具的味道
不過最令我滿意的不是程式功能
而是在每一次的改版中
把很多函數再拆解成小函數
757 行的程式有 32 個函數
不含 event 等事件
且程式碼都有適當的空白及括號
故每次新增功能
其實都不用花很多心力
直接呼叫現有的函數即可
雖然不是做到 C++ 的物件化
但還算可重覆利用就是
最後來看個圖吧
2009年2月25日 星期三
2009年1月8日 星期四
2009年1月4日 星期日
2008年11月29日 星期六
WinCE Programer 之五大神器
1. UltraEdit - 不用多說,看 code 方便,可以設定工具配置直接編譯 C/C++ console 程式,反白 F3 就直接搜尋文章,他的優點說都說不完。
2. Copernic Desktop Search - UltraEdit 什麼都好,就是在跨檔案搜尋時,什麼事都不能做,故需要另一套幫助搜尋的軟體,此套應該是搜尋裡面算最快的,因為他除了會做檔案索引外還會做內容索引。它可以針對副檔名去建索引資料庫,唯其一開始內建的種類太多,故第一次需要從 registry 去做修改才會快(HKEY_USERS\xxx\Software\Copernic\DesktopSearch2\Config\KnownExtensions,並針對 WinCE 需要的檔案去建立,唯一不好的地方就是不能搜尋 sources 的檔案,因為它是沒有副檔名滴,這時我們便需要另外一套的幫助。
3. Locate32 - 與 CDS 相反,他可以設定那些副檔名的檔案不要建索引,故自然可以查詢類似 sources 類的檔案,唯其只建檔案清單索引,不建內容索引,故仍然是需要一點搜尋時間,不過還算可以接受就是。
4. Global - trace code的好工具,只要找到函數的定義區,直接點擊該名稱,便可以看到在那些檔案中有被呼叫,可惜的是建立資料時需要一段不短的時間,且 update 時又要再來一次。
5. xxxx - 目前只欠缺多分頁的檔案總管工具,不然一切就很完美。
2. Copernic Desktop Search - UltraEdit 什麼都好,就是在跨檔案搜尋時,什麼事都不能做,故需要另一套幫助搜尋的軟體,此套應該是搜尋裡面算最快的,因為他除了會做檔案索引外還會做內容索引。它可以針對副檔名去建索引資料庫,唯其一開始內建的種類太多,故第一次需要從 registry 去做修改才會快(HKEY_USERS\xxx\Software\Copernic\DesktopSearch2\Config\KnownExtensions,並針對 WinCE 需要的檔案去建立,唯一不好的地方就是不能搜尋 sources 的檔案,因為它是沒有副檔名滴,這時我們便需要另外一套的幫助。
3. Locate32 - 與 CDS 相反,他可以設定那些副檔名的檔案不要建索引,故自然可以查詢類似 sources 類的檔案,唯其只建檔案清單索引,不建內容索引,故仍然是需要一點搜尋時間,不過還算可以接受就是。
4. Global - trace code的好工具,只要找到函數的定義區,直接點擊該名稱,便可以看到在那些檔案中有被呼叫,可惜的是建立資料時需要一段不短的時間,且 update 時又要再來一次。
5. xxxx - 目前只欠缺多分頁的檔案總管工具,不然一切就很完美。
訂閱:
文章 (Atom)