目前日期文章:201007 (8)

瀏覽方式: 標題列表 簡短摘要

看了網路上一些錯覺圖後產生靈感,就隨手寫了個小程式來驗證想法,不過效果似乎不太好。我也不知道其他人看起來感覺如何,歡迎回饋意見讓我知道。
程式執行後會在同資料夾輸出 maze.bmp ,如下圖。 (滑鼠請點擊放大,才看得到效果)

novus 發表在 痞客邦 PIXNET 留言(4) 人氣()

最近似乎蠻熱門的話題。以我過去所見,這類的文章通常只是關在門內傳的自爽文,這篇投稿不知道為何被 NOWnews 採用,然後又被 yahoo 擷取成為「科技新聞」。

文章在此,請自行點閱

novus 發表在 痞客邦 PIXNET 留言(4) 人氣()

世足賽才剛在章魚的魔爪下落幕,相較之下比較少人關注的長曲棍球(Lacrosse)世界錦標賽開打了。

長曲棍球是北美易洛魁人(Iroquois)的傳統活動,據說有一千年以上的歷史,除了可以強身健體 (以及增加遠距步兵攻擊力),還被用來代替戰爭解決糾紛。原始的長曲棍球場地和規則比較鬆散,有時可以同時有千人在場上打,後來被北美的法國人和加拿大人改良成為現代的形式,在 1904 和 1908 年是奧運正式項目,另外在 1928、1932、1948 則是表演項目。

novus 發表在 痞客邦 PIXNET 留言(0) 人氣()

我一直沒試過在多緒環境下使用 rand() 或 strtok() 這類函數,因為古有明訓,早在我對 thread 都還沒有什麼概念之前,就已經知道 rand() 或 strtok() 最初設計時對多緒環境完全盲目,所以這種用法對我來說是根本都不用考慮的愚蠢行為。另一方面是因為手邊有比 rand() 和 strtok() 更強而有力的工具,所以甚至是普通的單緒程式我都不太喜歡用 rand() 和 strtok()。

這些函數在多緒環境的問題很容易理解,例如 rand() 通常用線性同餘法實作,內部要維護一個長期存在的種子以產生下一個數。麻煩的地方在於,在多緒環境下呼叫這些函數,可能導致於同時競爭讀寫這些記憶體。同樣的問題也發生在 strtok 上。

novus 發表在 痞客邦 PIXNET 留言(2) 人氣()

C/C++ 當中有一派人士認為,當一個東西不該出現負值的時候,應盡可能以 unsigned 修飾。舉凡標準程式庫當中與記憶體大小相關的數值,像 sizeof 運算、size_t、還有STL容器的 size_type 都是某種 unsigned 整數類型;其他像 strlen 的回傳值以及 malloc 的輸入值也都具有 unsigned 性質。

除此之外,有些人更進一步主張像年齡、人數之類的,既然永遠不可能為負值,那麼也應該要加上 unsigned 關鍵字。這麼做最主要的好處之一是可以在宣告當中表明意圖,另一方面既然 unsigned 不可能為負,所以檢查有效範圍會比較簡單:

novus 發表在 痞客邦 PIXNET 留言(0) 人氣()

.

.

novus 發表在 痞客邦 PIXNET 留言(1) 人氣()

本文不打算包含:如何從頭撰寫一個 DLL、如何用某某牌編譯器編譯 DLL、如何在某某牌編譯器使用DLL..... 等等議題。基礎 DLL 教學在網路上非常豐富,有需要的人應該很容易可以得到所需資源,在此先假設讀者都有一定的熟悉度。這裡只打算提供一些能稍稍增加彈性及可維護性的小經驗,特別是 DLL 的 header 方面。或許對很多人來說可能都是常識,只是我發現網路上比較少這方面的整合資訊,所以做了一點綜合整理。

以下我拿自己常用的 DLL header 範本為例

novus 發表在 痞客邦 PIXNET 留言(2) 人氣()

會有這個程式,是因為聽一位朋友說,他光是寫井字遊戲的AI就用掉近千行。
然後當時我就宣稱不用一百行,我就能做出含視窗介面、AI 和流程控制的井字遊戲。

novus 發表在 痞客邦 PIXNET 留言(4) 人氣()