原创 如何在窗口中畫直線
如何畫直線,看起來似乎很簡單,拿個直線方程,遍歷X求出Y,再把對應點畫出來不就行了麼,嘿嘿,沒那麼簡單~ 平時我們所說的直線是在實數域的,也就是說對應的Y可能是小數,而在屏幕上,所畫直線是基於正整數域的,那麼根據直線方程如
原创 一個簡易的配置類及其實現
配置文件基本格式: //test.ini [hello] name = zhangsan sex = M [world] //this is a comment key = value 配置文件由 段
原创 算法導論 二叉查找樹
在二叉查找樹進行基本操作的時間與樹的高度成正比。二叉查找樹基本性質:設x爲樹中某個結點。如果y是x的左子樹中的一個結點,則key[y] <= key[x]。如果y是x的右子樹中的一個結點,則key[x] <= key[y]。也就是說,某個
原创 彙編中的結構體表示
我認爲,彙編中一切皆地址。 在c/c++使用很多的結構體,在彙編中是如何表示的呢?其實,在彙編中根本就沒有什麼結構體的概念,結構體本質就是一堆連在一起的數據。只不過有人把他們想象成一個整體,並以此產生結構體的概念,這與結構體中帶有變長數組
原创 CEGUI中的消息提示類messagebox
前段時間一直在看CEGUI,研究samples的時候,想隨便改改代碼,發現類似windows中的消息提示函數或類,是沒有的,需要自己寫。 就簡單的寫了一個 .h文件代碼 //start of namespace MYTEST names
原创 hello world!
hello world! 是我剛學習c/c++時候,打印出的第一句話,當時看見它閃現在屏幕,別提多興奮了。 現在會的東西,多點了,卻變得懶了,no,no! 得保持當初的激情才行,come on! 所以,胡漢三,我又回來了,爭取每週都寫點,
原创 算法導論 堆排序
堆的基本概念: 堆是一個完全二叉樹,用數組來存儲這個結構的時候,A[1...length[A]]可以表示有效值,但heap_size[A]以外的值都不是屬於堆的,可以視爲無效值。 對於數組中下標爲i的元素,根據二叉樹的性質可以得到:
原创 簡單的內存泄露檢查工具
最近工作挺忙,博客也好久沒更新,這可不是什麼好事,寫博客的習慣還是得堅持的。 前幾天無聊,就寫了一個簡單的內存泄露檢測工具。 原理很簡單,直接上代碼吧。 .h文件 #ifndef _Z_NEW_H_ #define _Z_NEW_H_
原创 利用__PRETTY_FUNCTION__宏實現服務器消息機制
遊戲服務器總是會與客戶端通信的,一般通信協議是自定義的,比如下面這種 消息基類 用大、小消息號標誌 struct MsgBase { MsgBase(UINT8 t,UINT8 st) { t_ = t; st_ = st; } UI
原创 android下so文件的注入和hook
上週主要在弄android下的so文件注入和函數hook 起初想法很簡單,美術同學跟我說,想借鑑幾個手遊的資源,一開始是最初級的搞法,iap,apk統統改成zip,解壓吧,還真有一些遊戲資源是沒有加密的,爽歪歪。 然後就是有一些遊戲,加了
原创 遊戲尋路——深度優先搜索
基本思想: 從起始點開始開始遍歷,首先訪問起始點V,再訪問與V相鄰的點W,接着訪問與W相鄰且沒訪問過的點,以此類推,直至某個被訪問的頂點的所有相鄰頂點均被訪問爲止。 然後退回到尚有相鄰頂點未被訪問的頂點R,再從R的一個未被訪問的頂點出
原创 算法導論 計數排序
不管所堆排序,還是快速排序,排序的本質都所基於各個元素之間的比較。而可以證明的是,所有基於比較的排序算法,在最壞情況下的時間複雜度的下界是O(nlgn)。 而,計數排序不所基於元素之間的比較,而是,對於一個輸入x,在整個輸入中確定出小
原创 算法導論 習題 5.4-4
題: 一個聚會需要邀請多少人,才能讓其中很可能有3人的生日相同? 解: 設房間人數爲m,一年有n天 1<= i <= m,1<= r <= n Pr{bi=r} = 1/n; Pr{bi=r and bj=r and bk=r}
原创 lua_tinker淺析
Lua也用了有段時間了,lua跟c++的交互以前用的是luabind,但是需要boost庫,太大了,我的需求也沒那麼多。所以項目引入lua的時候,我決定找個簡單點的庫,這時候發現了lua_tinker,很小巧,就兩個文件.h和.cpp,引
原创 彙編中的除法指令
AT&T彙編中的除法指令也分爲兩種:signed、unsigned unsigned: div divisor //除數 a 8、16、32-bits register or memory value 被除數隱含的放在ax、dx:ax、