作者adrianshum (Alien)
看板C_and_CPP
標題Re: [問題] 踩地雷的輸入
時間Tue Jul 6 11:45:44 2010
※ 引述《janice001 (真理)》之銘言:
: 嗯 最近趁暑假想實現踩地雷的計算程式
: 就MSN的踩地雷 看過一些資料
: 想法是找出絕對不可能是地雷的格子
: 我最主要的問題是
: 怎麼輸入格子的狀態比較方便?
: 總共有 256個格子
: 每個格子有十種狀態
: (預設 1~8顆地雷 確定無地雷 已經被選定為地雷)
: 懇請大大指教 歐 我使用的是 VS 2005 語言是C++
既然都寫 C++ 了, 為何大部份人都還是一大堆
int/char 土炮煉鋼?...
psuedo code:
class Cell {
boolean isBomb;
int bombsAround;
// 視乎設計, 可以 refer to Board,
// 提供方法去根據周圍的 cell 作運算
// 也可以提供自己的座標
}
class Board {
Cell cells[16][16];
void setCell(int x, int y, boolean isBomb, int bomsAround);
vector<Cell> findSafeCells();
vector<Cell> findBombCells();
}
諸如此類
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.238.156.185
推 VictorTom:推:) 小弟我也總是用C的思維在寫程式....Orz 07/06 12:02
→ loveme00835:小程式用物件導向有點像「割雞用牛刀」的感覺, 寫 C++ 07/06 13:15
→ loveme00835:的好處就是不用限定是哪種風格, 而且a大的概念比較偏 07/06 13:17
→ loveme00835:Object-Based 07/06 13:18
推 Bencrie:不弄成Object-based的話那用C不是更乾淨嗎 XD 07/06 15:02
→ adrianshum:作為學習用, 小程式也用 OO 的思考方向其實沒有什麼大 07/06 15:08
→ adrianshum:問題. 總不成一直都對自己說, 小程式, 不用 OO 啦, 到 07/06 15:08
→ adrianshum:面對大程式的時候腦筋其實轉不過去 07/06 15:09
推 cookiesgreat:推a大,現在漸漸有這種感覺出現= = 07/06 15:22
→ james732:adrianshum說得沒錯 只是小程式真的會想偷懶 (壞習慣) 07/06 15:23
→ loveme00835:整個做一套下來還要考慮責任分派, 還有虛擬函式等等.. 07/06 15:39
→ loveme00835:真的會很辛苦... 07/06 15:40
→ adrianshum:還好吧? virtual function, 沒有特別令人辛苦的地方... 07/06 15:55
→ adrianshum:責任分派說到底就是設計的操練. 要趕交功課就算了, 自 07/06 15:56
→ adrianshum:己做練習, 不練這些我也不知道有什麼好練了 :P (我本 07/06 15:57
→ adrianshum:身對於那種不擇手段解題型式的練習覺得蠻感冒的 >_< 07/06 15:58
→ adrianshum:可能我自己工作上是做大型軟件比較多, 設計的重要性比 07/06 15:58
→ adrianshum:起速解難題的重要性大太多了... 07/06 15:59
推 loveme00835:不熟還是要多多練習~ 不過小問題我在評估的時候都直接 07/06 16:08
→ loveme00835:選擇程序導向 (  ̄ c ̄)y▂ξ 07/06 16:10
→ loveme00835:我指的虛擬函式是去設計多型的行為, 其實跟繼承樹結構 07/06 16:17
→ loveme00835:有密切的關係, 可能地雷跟其他格子都獨立類別出來, 直 07/06 16:18
→ loveme00835:繼承一個父類, 或是父類再去實作介面, 然後就會問自己 07/06 16:19
→ loveme00835::「設計成這樣的目的是什麼?」當然作為練習問這個沒有 07/06 16:22
→ loveme00835:意思, 但是就功利一點的角度來看, 架構好、易擴充的 07/06 16:23
→ loveme00835:踩地雷... 07/06 16:23
→ adrianshum:我倒是覺得先從簡單的設計開始啦 :) 共同父類什麼的, 07/06 16:41
→ adrianshum:沒必要的話也不必做, 至少把各功能清楚分開, Agile 07/06 16:42
→ adrianshum:programming 也有說出, 不必做不需要的設計, 比如現在 07/06 16:42
→ adrianshum:沒有什麼原因要搞個父類, 就不要搞好了.以後再refactor 07/06 16:43
→ adrianshum:就好. 自己練習, 倒也不必太功利 :) 07/06 16:43
推 loveme00835:嗯嗯, 想太多反而把XP的精神忘光光... 07/06 16:49
推 Yshuan:推這篇 07/06 18:42
→ bleed1979:GameDesign有po踩地雷問題,這邊有某大可以幫忙解答嗎? 07/07 15:05
→ bleed1979:已得到答案,實作完囉! 07/07 20:17