初次玩這個遊戲是剛入大學的時候,我手機上帶的小遊戲。後來手機丟了,就再也沒有玩過了。
前天逛csdn的時候看到這個文章:http://student.csdn.net/space.php?uid=108270&do=blog&id=34114&page=2#content
心血來潮,想自己用VC++實現一個,權當是懷舊了。。
效果就是這個樣子了。所有的顏色都可以訂製:背景色,球顏色,網格顏色
代碼只實現了基本的功能,沒有寫計分之類的代碼。
我的開發環境是:vs2008 + sp1 + windows 7
如果你想編譯下面的代碼,必須得有vs2010 或者 vs2008 安裝sp1
代碼封裝的比較完整,你只需要提供一個可供在上面繪圖的 GUI 窗體,
使用調用這個代碼:
BOOL CGamePanel::InitializeGamePanel(HWND hWndClient,CRect &rect,int row);
初始化一些設置。
響應重繪的時候調用:void CGamePanel::DrawGamePanel()
響應鼠標消息調用:void CGamePanel::OnClick(const CPoint &pt);
就可以得到一個 七色球遊戲畫面了
SetGridColor 等函數可以設置一些界面信息。。背景色我沒有提供接口,跟SetGridColor一樣實現。
此代碼中的兩個方格之間的最短路徑查找代碼如下:
廣度優先遍歷。使用了遞歸實現,特別是各個容器的數據頻繁插入刪除,效率不怎麼好。
如果誰有興趣,可以實現一個更好點的路徑查找。
不廢話了。我就直接貼代碼吧。
頭文件:
實現文件:
工程文件就不發了。
寫了兩天,還得做好多事情,挺累的,不想再寫了。誰要是看不懂的話,可以在下面留言,
如果有興趣的話也可以到我的另外一個博客:www.nogod.info 去看看 (這算個廣告了。)