發表文章

目前顯示的是 5月, 2016的文章

單人撲克101

圖片
以前和同事逛書店的時候,看到了一本收錄100個單人紙牌的遊戲書。那時候就和同事半開玩笑的說,把這本書買回去再把裡面的遊戲一個一個實作出來當作是練功吧。後來有一天我真的去把這本書給買了回來,然後每天早上上班之前,利用最多30分鐘的時間一邊啃著麵包一邊實作紙牌遊戲。那陣子每天我至少可以實作一個單人紙牌遊戲,最多的時候一天可以實作4個...不過一直實作作到33個的時候我停手了... 最近心血來潮想說把它移植上android,所以再拿出來檢視一下。原本這是一個windows的應用程式,當初實作的時候沒有特別考慮太多跨平台,把source拿來看了後大概規劃一下怎麼改就動手了,斷斷續續花了一周時間。 Android版本單人撲克101 下面大概對過程作個記錄。 ; 每一個紙牌遊戲都是繼承自CardGame這個類別。下面列出主要和平台有關係的介面,也是移植的時候需要改版的地方。 class CardGame { public:   virtual void DrawGame(CDCHandle dc, RECT const& rcClient) const;   virtual bool OnMouseDown(CPoint point, RECT const& rcClient);   virtual bool OnMouseMove(CPoint point, RECT const& rcClient);   virtual bool OnMouseUp(CPoint point, RECT const& rcClient);   void DrawCard(CDCHandle dc, int x, int y, int card) const;   void DrawCover(CDCHandle dc, int x, int y) const;   void DrawEmptyCard(CDCHandle dc, int x, int y) const;   void EraseBkgnd(CDCHandle dc, RECT const& rcClient) const; }; 如上和平台有關的介面有二個,一個和畫圖有關係,另一個和輸入有關係。 1,首先我另外建立了Ca