Time of Update: 2018-12-07
Unix/Linux使用Find命令尋找檔案 尋找空的目錄: find /path -depth -type d -empty 尋找空檔案: find /path -depth -type f -empty 根據名字尋找檔案: find /path -name name_of_file 根據副檔名尋找檔案: find /path -name “*.given_extension” 尋找具有特定許可權且特定副檔名的檔案: find /path -name ‘*.txt’
Time of Update: 2018-12-07
《Lua程式設計》中介紹了兩種方法: 1)用一維數組,也就是一個table類比二維數組的行為。此方法效能不錯,但實現起來略嫌麻煩。 2)table套table,類似於C語言的“指標的數組”,外層table的value是內層table的引用。此方法優劣反之。 其實在某些情境下,適合用方法2)的最佳化方案,例如:local DIR_ARRAY = { function() return 0, 1 end,
Time of Update: 2018-12-07
iOS應用的開發通常採用MVC(Model-View-Controller)架構,其中的View,在Cocoa架構中通常為UIView及其子類。 在一個iOS應用中,View通常是吃記憶體大戶,因此有效地管理View的記憶體就顯得格外重要。在UIViewController中,一個重要的屬性為view,這個view是該Controller中所有View的superview,它的生存周期如下所示:產生及初始化:- (void)loadView{UIView
Time of Update: 2018-12-07
題目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2141 解題的關鍵在於把判斷a + b + c = x轉化為a + b = x - c,算出a + b的所有組合,然後快排,二分搜尋。 做了個最佳化,把c也排序,這樣能在搜尋中不斷減少搜尋空間,但似乎沒快多少。以下代碼#include <cstdio>#include <cstdlib>#include <iostream>using
Time of Update: 2018-12-07
一個用QBASIC寫就的21點賭博遊戲,能夠下賭注與AI(美其名曰)玩,字元介面的人機互動。DECLARE SUB yingying (y!, c!, d!)DECLARE SUB shushu (y!, c!, d!)DECLARE SUB ying (y!, c!, d!)DECLARE SUB shu (y!, c!, d!)DECLARE SUB prinqian (y!, c!)DECLARE SUB prindian (dian!)DEF fnzhi (qq)
Time of Update: 2018-12-07
之前發了篇有失水準的文章,聲稱可以用文中的方法實現lua單例對象。 確實可以現實,但是太ugly了,體現不出lua之美,還附帶命名汙染。百科了下FP,遂想出一種更優雅的實現方案: Hello = {}function Hello:new() --private method. local store = nil return function(self) if store then return store end
Time of Update: 2018-12-07
題目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2438 題意很簡單,求一車輛能否順利過彎。 這種題只能猜它的“最佳過彎法”,而很難給出嚴格的數學證明。 就不妨猜測車輛的外側貼著外直角過彎是最佳的。接下來就是判斷車輛內側是否會越過內直角點了。 不妨設外直角點為原點,左上方為第一象限建立直角座標系,易得車輛外側的直線方程為:y/(l*cos(a) + d*csc(a)) + x/(
Time of Update: 2018-12-07
過關小遊戲常帶一個關卡介面,分頁顯示不同的關卡,可左右滑動。cocos2d-x中竟然不帶類似cocoa中UIScrollView的控制項,只好自己從繼承CCLayerColor開始寫新類,姑名之CCPageLayer。初始化時要確定高度和顯示寬度(為了簡化代碼,讓頁寬等於顯示寬度,這樣符合筆者的需求): 1 bool CCPageLayer::init(const float &width, 2 const float
Time of Update: 2018-12-07
前段時間把《代碼大全》略略翻了一遍,網上down的電子書,省了筆書費——當然這是不對的,無論從著作權的角度還是從愛護眼睛的角度。英文版的書名為Code Complete,從書的內容來看,我更願意把書名譯作《代碼寫作攻略大全》。這確實是一本攻略大全,最佳實務大全。書中第2章介紹了軟體開發中的“隱喻”。軟體開發是相對較新的活動,通過已有的活動來理解軟體開發,興許會更容易而深刻。作者最為認同的隱喻是“建造軟體”,以下不妨以下圍棋喻之。
Time of Update: 2018-12-07
隨著對FoolGo最佳化的進行,每次落子時重複計算棋盤的zobrist雜湊值成為眼見的效能熱點之一,須要修改成增量計算。 需要一個結構來表示落子前後,棋盤狀態的變化:class BrdChange{public: template <typename T> struct Change { T origin_, now_; }; struct Pair { PointIndex indx_; Change<
Time of Update: 2018-12-07
前文介紹了CCPageLayer的設計與初步實現。彼時未升級至cocos2d-x
Time of Update: 2018-12-07
一、匿名函數匿名函數就是沒有名字的函數,又稱作Lambda函數。好多資料說它強大,它到底強大在哪1 function foo(arg1,arg2,arg3){2 //code 3 }4 5 var foo = function(arg1,arg2,arg3){6 //code 7 }這兩者區別在哪? 第一個我們稱作是函數聲明 ,聲明方式無非就是資料類型名,後面接空格和一個變數,就跟C++中的 int a ,char *c一樣 第二個函數稱作函數運算式,運算式就是類似於
Time of Update: 2018-12-07
Monte Carlo局面評估+UCT博弈樹搜尋是現代電腦圍棋的主流。這種方法對演算法的效率有很高要求,因此須要在Mone Carlo類比過程中儲存棋串(直線相連的同色棋子集合)資訊,提高落子效率。 棋串須要滿足以下需求:頻繁查詢某棋子所在的“棋串”。頻繁建立棋串。頻繁查詢棋串的“氣”。頻繁合并兩棋串。移除棋串,並枚舉其中的棋子。 因此用鏈表實現的並查集是很合適的資料結構:struct Node { PointIndex next_, list_head_;};struct
Time of Update: 2018-12-07
A* (A-Star) 演算法是在Game中通常用來解決最短路徑(Shortest Path)問題的一種演算法. 相對於另一個知名的 Dijkstra 演算法來說, Dijkstra演算法雖然可以保證找到一條最短的路徑, 但不如A* 演算法這樣簡捷快速. 同時, Dijkstra的搜尋深度在某些情形下也容易顯得不適用. A* 演算法便是為了這些情形而出現的, 可以算是 Dijkstra演算法的一種改良.底下用幾張圖來表現Dijkstra演算法與A* 演算法的不同:……
Time of Update: 2018-12-07
《編程之美》之前有看過,不過看完之後不僅啥也沒記住,反而是把自己繞得一團暈,重讀《編程之美》也是想重新梳理一下演算法中的邏輯,並試圖找出那些所謂“美”的演算法的共性,同時也希望能夠結交一些有著共同愛好的童鞋。好了,廢話到此,咱們開始吧。 1、題目:對於一個位元組(8bit)的變數,求其二進位表示中 “1” 的個數,要求演算法的執行效率儘可能高。 解法一、 思路:(輸入)變數為125,其二進位表示為01111101,統計該二進位表示中“1”出現的個數,可(從低位到高位)依次統計每位上“
Time of Update: 2018-12-07
我目前在寫的一個益智類小遊戲,已有可以啟動並執行demo,但是沒有圖片,也沒有做使用者體驗方面的工作。真誠希望找個UI設計師,和我一起完成這個遊戲。 我希望你能協助我設計遊戲介面,最佳化使用者體驗,製作遊戲用到的圖片。 希望你在杭州,最好在濱江地區出沒。 希望你和我一樣,欣賞簡約不擁擠的使用者介面。 希望你有較充裕的業餘時間,至少不用經常加班。 希望你能喜歡我們的遊戲,認為它值得花0.99美元購買,因為我更傾向於收入分成的合作方式。 最好你是果粉,是iPhone使用者~ 使用的
Time of Update: 2018-12-07
以前寫過一篇關於智能指標的文章,但是還是沒有搞清楚兩個東西:1。智能指標如何調用被智能指標指向的對象的成員函數,我不知道如何只通過智能指標去訪問指向對象的成員方法,請看我的寫的智能指標的demo。#include <iostream>using namespace std; class A{private: int n;public: A(int m):n(m) {} ~A(){ cout<<"~A() is called\n"; }
Time of Update: 2018-12-07
泛型是提供給Javac編譯器使用的。可以限定集合中輸入的類型,讓編譯器擋住原始程式的非法輸入,編譯器編譯帶類型說明的集合時會去掉“類型”資訊,使程式運行效率不受影響,對於參數化的泛型型別,getClass()方法的傳回值和原始類型完全一樣,由於編譯產生的位元組碼會去掉泛型的類型資訊,只要能跳過編譯器,就可以往某個泛型集合中加入其它類型的資料,例如,用反射得到集合,再調用其add方法即可。 ArrayList<E>類定義和ArrayList<Integer>類引用中涉
Time of Update: 2018-12-07
這個是剛進公司實習的時候,讓我做的第一個練習-----在控制台中輸出菱形。接觸了幾個月的C#,竟然是第一次碰控制台,- -。 這是奮戰出來的雛形。花樣不少,代碼很抽象。 還是對Winform熟悉點,中途又打算在Winform裡來列印菱形。試了下,只有說調用控制台來輸出,效果並不好,作罷。關鍵是知道了在Winform裡還可以調用控制台。方法如下: [System.Security.SuppressUnmanagedCodeSecurity]
Time of Update: 2018-12-07
職場生涯總會面臨著選擇,尤其對我們這些ITER來說,跳槽的頻率應該是所有行業中相當大的了。那麼我們跳來跳去,究竟該選擇什麼樣的公司 ? 大 or 小 。工作三年多了,經曆一大一小,最近也面試了不少家公司,形態各異,說說自己的感受想法。 在小公司中,給我個人的印象大多數環境都不怎麼樣。定義下這個小公司規模吧,在幾人到幾十人吧,反正不會超過100人。親曆一家小公司,