有興趣解無聊問題嗎?

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 可以看到詳細的測試結果:

2009-04-19_0206

準備好了嗎?我已源碼放到 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) 前提交

Random Posts

  1. One Response to “有興趣解無聊問題嗎?”

  2. By 軒爸 on Apr 25, 2009 | Reply

    寫好了, 說明在這裡.
    http://jessemok.mysinablog.com/index.php?op=ViewArticle&articleId=1688386

Post a Comment