有興趣解無聊問題嗎?
at April 19th, 2009 by 小影
在電鋸的 blog中見到有關如何在麥當勞落 Order 最抵的討論。這讓我想起 Jackysee 引《人月神話》的一段「編程之樂」,對於「無聊」的問題也可以動腦用好的方法解決,不正是「編程之樂」嗎?
不如效法 Ruby Quiz 攪個小遊戲吧!遊戲規則很簡單,用 Java Implement “OrderMaker” Interface:
介紹一下各個 class / interface:
- OrderMaker – 遊戲的目標,只有一個 method “order”。它的 parameter 是我們想要 order 的物件,它返回「格到最抵」後的 order。
- Item – 落單時的物件,可以是食物「Food」或套餐「Meal」。
- Menu – 定義了怎樣取得所有的食物/套餐的接口。
- SimpleMenu – Menu 的實作,讀取設定檔中各食物的價錢。
當然除了實作,還要證明它運作正常,請 extends AbstractOrderMakerTest 去證明:
以下是我實作的 implementation NaiveOrderMaker ,它只會將想要的食物全部單買:
在 command line 輸入 ant test 就可以看到測試結果:
這個實作可以 pass “testSimpleOrder” ,但會在 “testOrderWithMeal” 和 “testChooseCheapMeal” 失敗。打開 tests/index.html 可以看到詳細的測試結果:
準備好了嗎?我已源碼放到 github (git://github.com/siuying/quiz1.git) ,只要寫好你的 implementation 後 send 一個 pull request 給我就行了!如果你沒有 git 而且還不想試玩,可以到我 github 的 網頁 選 “download” 下載源碼。
遊戲規則:
- 實作一個 OrderMaker
- 實作一個 AbstractOrderMakerTest
- Test Case 可能會改變,但以能解決電鋸的問題為主。如果覺得有甚麼應該要加的 Test Case 可以通知我!
- 在限期一個月 (19 May 2009 00:00) 前提交

One Response to “有興趣解無聊問題嗎?”
By 軒爸 on Apr 25, 2009 | Reply
寫好了, 說明在這裡.
http://jessemok.mysinablog.com/index.php?op=ViewArticle&articleId=1688386