Re: [問題] 如何將物件導向的概念應用至hanoi
※ 引述《king19880326 (OK的啦~我都可以接受)》之銘言:
: 用物件導向的概念來實作一個河內塔
: A, B, C代表三柱
: java hanoi CBAB C 表示說由小到大的盤子依序在C, B, A, B柱
: 且目的地是C柱
給一點路過的想法:)
有放disc的rod (stack),
每個disc有key (mutablity doesn't matter,but necessarily comparable)
rod必需滿足sorted特性. (extends stack and override push(T) )
還有一個buffer (any collection)
然後用包的,有disc,有rod,
buffer還有位置的時候系統可以從任何一個非空的rod移掉一個disc
buffer非空的時候可以在不違反rod特性的情況下,從buffer丟一個disc到rod
For hanoi tower,加入,
boolean testSolved();
/* returns true if all discs at the destination rod */
void solve(boolean verbose);
/* testSolved() == true after called,
verbose == true if progress is needed to be logged */
我是認為"怎麼解?"這個問題,
只是最後面這一層要怎麼設計solve(boolean)這個function,
已經是怎麼去"使用"物件的層次了,並不影響前面去"定義"物件的特性.
不管Hanoi Tower的recursive solution有沒有其它應用,
(這還是限制只解Hanoi Tower的最佳解的時候)
但至少Hanoi Tower的結構我就不認為那是全然的Trivial:)
有時候回頭思考以前教我OO的老師提示過的話,都會覺得滿有意思的:)
她覺得設計出有用的物件的第一步
就是擺脫"我要拿這個物件來幹什麼"這種想法,
所以,她超喜歡出這種本質上function就能搞定的題目來當練習-.-"
分析完以後會發現實作還是一模一樣(爆)......XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.152.7
※ 編輯: Eventis 來自: 61.64.152.7 (04/13 09:44)
推
04/17 01:52, , 1F
04/17 01:52, 1F
推
04/21 13:53, , 2F
04/21 13:53, 2F
推
04/22 08:19, , 3F
04/22 08:19, 3F
→
04/22 08:21, , 4F
04/22 08:21, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章
-4
30