[DIY] Dominion Travel Box

最近閒來無事就會找朋友玩board game,而Dominion目前是在我的收藏中最好玩也最耐玩的一套(強力推薦!)。dominion最大的特色是有500張卡片,每次遊戲是從25種行動卡中挑10種出來玩,而每次看到不同的行動卡都得擬定不同的策略和牌組來取勝。不同的行動卡有不同功能,遊戲中購買卡片時要仔細思考並互相搭配行動卡組成連續技才能發揮最大效用。除此之外,遊戲的勝利條件是要購買勝利點數,在適當的時機開始買點數並保持自己牌組的平衡也是遊戲的一大挑戰。Dominion的規則超簡單,但卻很耐玩;它耐玩的地方在於每次都只挑其中10種行動卡,所以變化非常多,每次用亂數決定也很難玩到重複的組合。而且隨著玩家經驗的累積,常常會發展出不同的策略和打法,即使是同樣的牌組多玩幾次也有不同樂趣。但有點可惜的是Dominion只能最多4個人玩,人太多就沒辦法玩了。(其實我們有試過5個人玩過,同時修改一下遊戲結束條件也還是很好玩。另外,其實5月Dominion就要推出擴充版了,最多可以同時6個人玩一桌,或是8個人玩兩桌XD)雖然dominion是純卡片遊戲,但因為它的卡片種類實在太多,每一種卡都要分開來放,所以導致它的盒子非常的大,每次如果要帶出去,就很難再帶其他的board game了..。為了解決這個困擾,我的DIY魂又燃燒了起來,於是最近在玩時都一直碎碎念:「既然買不到小盒子乾脆就自己做吧!」。我的目標是設計一個可以剛好放進500張卡片的盒子,大小要便於攜帶,而且也要容易把想要的卡片拿出來。google一下後發現也有人做了同樣的事。但我照他的設計圖做了一個prototype後發現他的盒子有點太大了,而且他的圖上沒有畫黏接面,剪好後沒辦法黏起來XD 所以我就依他的設計修改了一下,讓盒子的尺寸能剛好塞進沒上過牌套的500張卡片加上33張分隔卡。以下是我的設計圖:盒子主體和蓋子我是拿有點硬度的壁報紙做,但我後來覺得應該要拿更厚更硬的紙板才會夠堅固。盒子的角落會有4個70x70的正方形,我把其中兩個對半剪開加上雙面膠拿來固定四個角落。盒子完成後,蓋子也是如法炮製,只是尺寸稍大一點而已。我做完後發現上蓋的長寬可以再小一點,其實應該比主體各多2mm就足夠了。但我已經懶得再做第三次,就留給有心人去試吧。分隔卡總共要33張,包括25張行動卡、3張錢幣卡、3張勝利點數、1張詛咒卡、1張place holder。我用上面那個連結裡的設計圖,把他的每張分隔卡上半部剪下來,自己貼在70x90的紙板上,重複33次就完成了..。(手工藝真是很累orz)
成品與原盒的比較。 Fro[DIY] Dominion Travel Box
33張分隔卡。 Fro[DIY] Dominion Travel Box
把卡片全部放進去的完成品。 Fro[DIY] Dominion Travel Box
閱讀全文

與大師的近距離接觸

Takeo Igarashi是東京大學的教授,兩年前MMDays曾經介紹過他在UI上的一些研究,還稱他為日本的UI之神。在當時我就非常佩服Takeo的發明,他讓使用者可以直覺地用滑鼠畫出3D模型或是自然地操作2D圖片。這些發明共通的特性是使用者不需要面對複雜的選單和按鈕,只要用直覺的滑鼠動作就能做到極為靈巧的操作;而表面上看起來雖然單純,但背後卻有著非常聰明的想法隱藏在裡面。為什麼我會特別提到他呢?因為再過兩個禮拜,HCI界中最大的conferenceCHI 2009即將要在Boston舉辦,會場就在離MIT不遠的地方。雖然少了一次機會可以順便去別的地方玩,但有個好處就是世界各地在這個領域的學生和教授都會自己跑來Boston。Takeo當然也是CHI的其中一位與會人士,而我們老闆就趁這個機會邀請他來MIT給個演講,除了可以親眼看看他那些超酷的demo外,更棒的是他還會跟我們group的所有人一起吃飯!(當我聽到這消息真是超興奮的,這大概就是那種能跟偶像近距離接觸的感覺吧XD)提到這件事,就讓我想順便比較一下MIT和台大在辦seminar的差異。MIT CSAIL的研究領域非常廣泛,基本上每個子領域的教授都會自己找該領域的研究人員來給演講,所以我們有AI seminar、HCI seminar、Theory seminar...。這些seminar不強制要求學生參加,每個人挑自己有興趣的去聽就行了。我的老闆負責主辦HCI seminar,大概每一兩個星期就會找個人來演講,這些人來自世界各地,很多都是這領域兩大conference (UIST和CHI)的熟面孔。他們除了來演講外,最有趣的是我們老闆總是會請演講者跟我們整個group的學生一起吃午飯。因此,我們很容易就能認識這領域中的頂尖人物,還可以有很多機會跟不同人討論自己的研究,交換不同的想法。以前在台大時,資訊系每個星期也都會辦一兩場seminar,邀請國內各地的教授給個演講(很少有國外的講者)。大學生通常不會去聽,而研究生是被要求每個禮拜一定都要出席的(碩二要求少一點,但至少兩個禮拜也得去一次)。雖然台大也有這樣的制度,但其實碩士班過了兩年我也沒機會認識哪個講者,更別提能討論什麼研究了。seminar就只是單純的聽人演講,如果講者演說技巧不好或是對題目不感興趣,就會看到下面一堆人在睡覺或玩自己的電腦。雖然說MIT不強制要求學生去聽seminar,但有興趣的人都還是自己會去聽。聽眾人數通常也不會很多,可是因為是自己想聽才去參加,所以演講中的互動和討論很頻繁,而且氣氛也很熱絡。有一次還出現很有趣的現象:台下的人問了一個問題把講者考倒了,但台下另一個人馬上就幫他回答了答案,就在講者恍然大悟後,台下兩個人就隔空討論起來了XD我提到這件事也不是想說台大不好,只是MIT實在有太多台大很難有的優勢,像是MIT鄰近Boston這個被稱為「宇宙中心」(The hub of the Universe)的城市,世界各地的人很容易就會往這跑;再加上MIT的學術聲望和財力,要邀請各地的講者也不是什麼問題。台大雖然是台灣頂尖學府,但台灣距離西方國家太遙遠,很少人會專程想來台灣,再加上台大也沒辦法負擔這種國際旅行的費用(話說,五年五百億都用哪去了?),也難怪國際化只能停留在教授改用英文上課上面了。閱讀全文

追求神乎其技的程式設計之道(八)

追求神乎其技的程式設計之道系列第八集終於寫完了...。雖然我寒假過得很輕鬆悠閒,但不知道為什麼人就是會在很閒的時候不做平常一直說沒空做的事,然後硬是要在很多作業和工作時開始寫blog....。雖然開學後又開始變忙了,但我到目前還是每個禮拜都跑去滑雪,這樣看來這一系列最後突然會變成追求神乎其技的滑雪之道也說不一定XD前言夠多了,本集將繼續我在高三時朦朧無知的學習故事...。

Intel ISEF國際科展

第五集裡提到我一直以來都夢想著讓電腦學會自己寫程式。就在我把這個想法的雛型用基因演算法實做出來後,沒想到竟然真的看到了一點結果,電腦真的能透過基因演算法來產生出一個能夠正確運作的程式!在高三時,已經取得保送資格的我對學校的課業時在沒什麼興趣,於是我想閒著也是閒著,乾脆就把這個點子拿去參加科展看看,這樣一來我就又有理由可以請公假了(笑)。當時似乎是因為已經來不及報名全國科展了,所以我就跑去報名了國際科展,但那時我其實完全不知道這兩種科展有什麼差別。後來查了一下才知道,原來台灣的國際科展除了是一種比賽外,主要的目的其實是要選出代表去參加其他國家(如美國、法國、加拿大...)的科展活動;而一般的全國科展就是一個區域至全國性的展覽兼比賽,在全國選出前幾名後就結束了。2001年時,那時科教館還在建中對面,那也是我第一次踏進科教館的大門。在展場內把自己的海報貼上看板後,我就到處逛逛欣賞別人的作品。因為資訊科在高中不是正式科目,參加的人比起其他科來說少了許多,但其中還是有些非常驚人的作品出現。當時有個建中的學弟Eric,他寫了一個用類神經網路辨識並動態追蹤影像中人眼位置的程式,於是他就用了個普通的攝影機加上這程式,就變成可以用眼睛控制滑鼠游標的神奇裝置。除了Eric的作品外,其他的作品看起來大多只是某種現有產品或課本上習題的複製品,並沒有什麼令人特別印象深刻的東西出現。說起來這其實也不奇怪,因為在高中階段要自己學好一個程式語言其實並不容易,在基礎還未打穩前,即使有再多創意也無法發揮出來。而很可惜的是,很多人上了大學終於學會寫程式後,創意和熱情也被磨損的差不多了;而畢業後雖然已經有了基本功力,但卻只能照著老闆開的規格刻畫死板的功能與介面,與其說是程式設計師不如說是程式工匠。我覺得台灣人的能力並不差,但社會中卻瀰漫著一股抄襲與仿冒的氣息,從最近的酪梨壽司事件(相關抄襲事件還可參考MMDays的整理),可以看出抄襲風氣在台灣並不只是小時候在學校抄抄作業而已;媒體工作者在報導中任意抄襲及轉載是種不尊重自己專業的表現,不但隱含著一種應付了事的心態,更代表著這些人對於自己的工作沒有熱情,更沒有著一點堅持。如果要說我在美國看到這邊和台灣有什麼最大的不同,我想關鍵的差異就在對自己的工作有沒有熱情和堅持而已了。在評審的過程中,有兩個教授一起來聽我介紹我的作品。因為我沒有任何參加科展的經驗,也沒做什麼講稿或準備就去了,一切只能靠臨場發揮,還好教授們還蠻喜歡我的作品,一來一往的討論之下才讓我不至於太緊張而說不出話來。自己的介紹結束後,終於鬆了一口氣,教授們對我的作品似乎感到非常新奇和有興趣,後來還問了我「如果再給你兩個月,你能做出更好的結果嗎?」這問題聽起來像是要給我個機會再繼續深入研究下去,難道是意味著要選我當代表嗎?當時我對於得獎其實是沒什麼興趣和期望的,只是想看看別人對這個東西的意見,但如果有人喜歡當然是很棒的事情。這問題無非是給我挑戰的機會,我腦中還有很多改進的想法,如果有更多時間,一定還能做出更棒的結果。所以,我就毫不猶豫的就回答了:「可以,當然可以!」到了頒獎典禮時,司儀一一宣佈每個學科的獲獎人以及之後要代表台灣去哪個國家參展,同時也頒發一些企業贊助的特別獎。我原本一直以為Eric的作品應該是穩拿第一的,畢竟相較之下我的作品並不夠成熟和完整,甚至連個能稱上科學實驗後的結果都沒有。但這個新奇的點子威力還是很大,我完全沒預料到無心插柳參加科展竟然讓我拿到了Intel頒發的電腦科學最佳獎,並且還選上了美國代表,之後可以代表台灣去美國參加Intel主辦的國際科學暨工程展(ISEF, International Science and Engineering Fair)。

程式設計之內功心法

得獎當然很開心,這是對於我這個想法和努力的肯定,但隨之而來的也是一股很大的壓力。我得代表台灣站出去,到美國跟來自世界各地...閱讀全文

追求神乎其技的程式設計之道(七)

追求神乎其技的程式設計之道系列這次拖稿了很久,雖然下禮拜就要期中考了,但我決定還是要趁這個作業都剛交出去的忙碌低峰期來補上一篇,不然真不知道下一篇要等到什麼時候了...(泣)

思考的高度

上一篇談到了優秀程式設計師的第一要件:「熱情」,這一篇我想要談我覺得熱情之外最重要的能力:「思考」,特別是抽象化的思考能力。寫程式可以說是一件進入門檻很低的工...閱讀全文