Thinkfun //CODE 編程玩具深度體驗(yàn)報(bào)告

2017
2011
2017-8-20 13:15 原創(chuàng) · 圖片26

【本文于2017年8月19日首發(fā)在小花生網(wǎng)公眾號(hào)】

曾推出過經(jīng)典的網(wǎng)紅玩具重力迷宮、激光迷宮的益智玩具廠商Thinkfun,今年又新推出了一套叫做//CODE的編程玩具。感謝小花生網(wǎng)的邀請,我有幸第一時(shí)間玩到了這套玩具,廢話不多說了,長篇大論的深度體驗(yàn)報(bào)告在此,大家慢慢看吧。

這是一套什么玩具?

Thinkfun //CODE是一個(gè)系列產(chǎn)品,包括三款獨(dú)立的玩具:

官方給它們規(guī)定了順序,而且每一款都有自己的主題,按照上圖從左到右:

On The Brink:主題是Procedures(過程)Rover Control:主題是Control Structures(控制結(jié)構(gòu))Robot Repair:主題是Boolean Logic(布爾邏輯)

雖然是編程游戲,但按照Thinkfun的一貫風(fēng)格,這貨是地地道道的桌游(board game),沒有任何電子元件,當(dāng)然也不用電池,對(duì)于想培養(yǎng)孩子編程思維,又對(duì)電子屏幕有所顧慮的家長來說,不失為一種新鮮的選擇吧。

這三款玩具的適用年齡都是8歲以上,可惜我家只有一個(gè)5歲半的Vita哥哥和一個(gè)還在吃奶的Luna妹妹,沒辦法,只能讓Vita哥哥假裝適齡兒童了。這三款玩具全部經(jīng)過哥哥完整突擊試玩,特別有誠意對(duì)吧!關(guān)于玩具的實(shí)際難度,我后面會(huì)根據(jù)Vita哥哥的表現(xiàn)進(jìn)行分析。

接下來就按順序開玩吧!

//CODE系列之1:On The Brink

第一款玩具叫On The Brink,包裝盒上是一個(gè)機(jī)器人在走獨(dú)木橋,看起來是一個(gè)迷宮類的游戲。打開包裝,先看見一張紙:

看起來,//CODE這套玩具是扎克伯格、比爾·蓋茨等IT大佬鼎力支持的“編程一小時(shí)”項(xiàng)目(Hour of Code)的一部分,然后它是和一位前NASA的程序員共同設(shè)計(jì)的。我個(gè)人很欣賞“21st Century Thinking Skills”這個(gè)說法,我曾經(jīng)在一篇講為什么要教孩子學(xué)編程的日志說提到過,在我小時(shí)候,有個(gè)十分流行的說法叫“不會(huì)使用計(jì)算機(jī)就是21世紀(jì)的文盲”,可怕的是,這個(gè)說法現(xiàn)在基本上已經(jīng)成真了,那么不會(huì)編程會(huì)不會(huì)變成“21世紀(jì)下半葉的文盲”呢?我不是預(yù)言家,給不了這個(gè)答案,只能說我個(gè)人認(rèn)為這個(gè)可能性不小吧。

這個(gè)怎么玩?

好了,言歸正題,這貨到底怎么玩?先看看里面有哪些東西吧:

上面有三種顏色的玩意兒叫控制面板(Control Panel)——這張照片上我好像把它擺的上下顛倒了。下面一本大的冊子就是謎題了,一本小的冊子是說明書,還有一刀命令卡片和一個(gè)機(jī)器人棋子。

這款玩具都有40道謎題,根據(jù)不同難度分為入門級(jí)、中級(jí)、高級(jí)和專家級(jí),每個(gè)級(jí)別各10道題。先看看第1題長啥樣吧:

第一眼看到這個(gè)我也有點(diǎn)懵,這到底是個(gè)啥?于是我把說明書翻了一遍,終于搞明白了。然而,讓我感到驚訝的是,Vita哥哥在并沒有看說明書的情況下,就搞明白怎么玩了,這可能是因?yàn)樗孢^很多編程類的App,不過從另外一個(gè)角度來看,這個(gè)游戲的規(guī)則設(shè)計(jì)大概也比較符合孩子的直覺。

簡單來說,這個(gè)游戲的目標(biāo)就是讓機(jī)器人從起點(diǎn)走到終點(diǎn),控制面板上有6個(gè)格子(紅、藍(lán)、橙各兩個(gè)格子),我們要把命令卡片放在控制面板上,6個(gè)格子都要放滿。機(jī)器人站在什么顏色的格子上,就執(zhí)行什么顏色格子里的全部兩個(gè)命令,走到下一個(gè)格子之后,再根據(jù)所在的格子執(zhí)行相應(yīng)的命令,直到最后到達(dá)終點(diǎn)為止。但是需要注意的是,機(jī)器人不能走到灰色的那些格子里去,不然就從棋盤上掉下去啦。另外,我們發(fā)現(xiàn)棋盤上有白色的格子,但控制面上沒有白色的格子,這意味著白色格子沒有對(duì)應(yīng)的命令,一旦機(jī)器人在一個(gè)回合結(jié)束時(shí)落在白色格子里,就卡死在里面出不去了。還有一些具體的規(guī)定,這里不多說啦,大家還是好好看看說明書,官網(wǎng)上居然有電子版,然而把答案也放出來是鬧哪樣啊(捂臉。

好了,我們看看有哪些命令卡片可以用吧:

命令都挺直觀的,基本就是前進(jìn)后退左轉(zhuǎn)右轉(zhuǎn)這些。上面灰色的卡片是基本卡片,入門級(jí)和中級(jí)題目用這些卡片來做;下面金色的卡片是高級(jí)卡片,包含一些比較復(fù)雜的復(fù)合命令,高級(jí)和專家級(jí)題目用這些卡片來做。最上面的X卡片表示不執(zhí)行任何命令,就是個(gè)占位符,這些X卡片在任何級(jí)別都可以用,其實(shí)背面反過來是金色的,呵呵。

好了,我們看看這個(gè)第1題怎么搞。題目棋盤的左邊列出了需要使用的命令卡片,先把這些卡片找出來吧。入門級(jí)題目沒有黃色格子,所以里面直接放兩個(gè)X;藍(lán)色格子只前進(jìn)一步就掉白格了,所以放兩個(gè)前進(jìn)命令吧;最后紅色格子就只剩一個(gè)前進(jìn)和一個(gè)X。

放好命令卡片之后,我們要“運(yùn)行”程序,怎么運(yùn)行呢?沒電,只能人肉運(yùn)行了。拿著機(jī)器人棋子,按照放好的命令一步一步走,看看最后能不能走到終點(diǎn)呢?嗯,完美?。ㄆ鋵?shí)這個(gè)機(jī)器人棋子是有個(gè)塑料底座的,應(yīng)該是立起來在棋盤上走的,我拆包裝的時(shí)候把底座漏掉了,于是一直是平放上在上面玩的,請大家忽略這個(gè)詭異的效果。)

孩子能學(xué)到什么?

這款游戲的主題是Procedures(過程),所謂“過程”就是一串命令的組合,通過它們來完成某個(gè)目標(biāo)的意思。

要說這款游戲最大的亮點(diǎn)是什么呢?我覺得并不是解謎,而是手工運(yùn)行程序這個(gè)步驟。你可能會(huì)說,手工運(yùn)行程序有什么難的呢?不就是按照命令一個(gè)一個(gè)走嗎?其實(shí)對(duì)于孩子來說,這個(gè)過程是非常需要專注力的,因?yàn)樗枰串?dāng)前格子是什么顏色,再看好需要運(yùn)行什么命令,然后再實(shí)際用棋子去完成相應(yīng)的移動(dòng),很多孩子會(huì)覺得這個(gè)“按部就班”的過程很枯燥——要知道,看著說明書搭積木對(duì)孩子來說也沒那么容易的,對(duì)吧。由于有向左轉(zhuǎn)向右轉(zhuǎn)這種命令,孩子還得學(xué)會(huì)根據(jù)機(jī)器人當(dāng)前面對(duì)的方向來分清往哪邊轉(zhuǎn),實(shí)際玩的過程中,大人都難免在這個(gè)地方出錯(cuò),更不要說孩子了。

看Vita哥哥給你真人演示如何手工運(yùn)行程序:

為什么說這是這款游戲最大的亮點(diǎn)呢?因?yàn)樵趇Pad或者電腦上編程的時(shí)候,運(yùn)行程序是計(jì)算機(jī)的工作,人只要看結(jié)果就好了,但計(jì)算機(jī)運(yùn)行得太快,孩子不太容易理解命令是怎樣一條一條被執(zhí)行的。為什么需要理解程序運(yùn)行的過程呢?因?yàn)楫?dāng)程序出現(xiàn)問題需要調(diào)試(debug)的時(shí)候,我們就需要一步一步排查問題到底在哪里,在這個(gè)過程中,單步模擬是一個(gè)很有用的技能。當(dāng)然了,就算孩子以后不去編程,這個(gè)過程也非常能鍛煉孩子的耐心、專注力和空間方位感覺。我覺得,如果你發(fā)現(xiàn)解謎對(duì)于孩子來說有點(diǎn)難,完全可以先按照手冊上的答案把命令擺好,讓孩子練習(xí)自己運(yùn)行一遍這些命令。

再說說解謎吧。這款游戲的解謎過程大致需要兩種能力,一種是模式識(shí)別(pattern recognition),另一種是邏輯推理(logical reasoning)。模式識(shí)別簡單來說就是找規(guī)律,找套路,比如說下面這個(gè)應(yīng)該一眼就能看出來,橙色直走,紅色右轉(zhuǎn),藍(lán)色左轉(zhuǎn)。

當(dāng)然,在難度較高的題目中,模式是沒有這么明顯滴,要不然也太沒挑戰(zhàn)了對(duì)吧。對(duì)于模式不明顯的那些題目,就得發(fā)動(dòng)邏輯推理技能,找到一些限制條件比較多的格子,排除掉一些可能性,然后再進(jìn)行嘗試。

模式識(shí)別在實(shí)際的編程中也是一項(xiàng)重要的能力,因?yàn)橛?jì)算機(jī)編程的一個(gè)關(guān)鍵方法就是盡量使用可重用的模式(reusable patterns),也就是說通過簡單命令的組合和重用來完成復(fù)雜的工作。在這款游戲中,基本命令只有三種:前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn),而高級(jí)題目中使用的復(fù)合命令,其實(shí)都可以看成是一些函數(shù),也就是多個(gè)基本命令的組合,比如Long Turn Left命令就等于前進(jìn)→左轉(zhuǎn)→前進(jìn)(每張復(fù)合命令卡片下面都有基本命令的分解)。在實(shí)際的編程中,函數(shù)就是一種可重用的模式,而程序員的工作之一就是去設(shè)計(jì)和構(gòu)建這樣的模式,然后像搭積木一樣把它們組合起來。

玩這款游戲的時(shí)候我們還能發(fā)現(xiàn),大部分情況下機(jī)器人走的都不是最短路線,而是要繞來繞去好幾圈才能到達(dá)終點(diǎn),這是因?yàn)槲覀冊趪L試用非常有限的模式(3組命令)去完成任務(wù)。實(shí)際的編程中情況也差不多,因?yàn)橛?jì)算機(jī)的運(yùn)行速度很快,我們往往不在乎讓它多走一些冤枉路,正如我剛才提到的,我們的目標(biāo)是重復(fù)使用最少的模式來完成任務(wù),孩子在玩這款游戲的時(shí)候,能夠大量地接觸這樣的思維方式,對(duì)于真正學(xué)編程也是很有幫助的。

這個(gè)到底難不難?

難不難這個(gè)事情比較主觀,我只能根據(jù)Vita哥哥的試玩情況來大致分析一下啦。需要事先說明的是,Vita哥哥接受過一定的編程訓(xùn)練(比如Swift Playgrounds),所以大概比同齡孩子的平均水平要稍微高一點(diǎn)。

最簡單的第1題肯定是秒過了,后面我直接給他跳到了第10題,大概因?yàn)殡y度落差比較大的關(guān)系,這道題他花了大概有10分鐘時(shí)間。難在哪里呢?因?yàn)檫@道題一眼看不出路線的,模式識(shí)別不管用,必須依靠邏輯推理,我把最終的路線畫出來你們感受一下:

大家是不是覺得入門級(jí)第10題就這么難,后面該怎么玩?其實(shí)中級(jí)的第1題(也就是第11題)比第10題簡單多了,圖在前面大家自己翻一下,同理,高級(jí)的第1題(第21題)也比中級(jí)的最后一題(第20題)簡單,所以千萬別慌,這個(gè)游戲的難度并不是線性的。

不過高級(jí)的題目(第21題之后)還是頗有難度的,因?yàn)閾Q了一套命令卡片,不但命令的數(shù)量增加了,而且使用的都是復(fù)雜的復(fù)合命令。Vita哥哥從第21題直接跳到第30題之后就卡住了,那道題確實(shí)有難度,再加上跳題的關(guān)系,難為他了。不過,當(dāng)我們一起解決第30題之后,再讓他翻回去做25-29題的時(shí)候,就顯得很輕松了,平均10分鐘完成一道。

專家級(jí)的題目(第31題之后)Vita哥哥也嘗試挑戰(zhàn)了一下。專家級(jí)的難點(diǎn)在于它不告訴你這一關(guān)需要用哪些命令,也就是說,所有的命令都可能被用到,可能性變多了,邏輯推理的難度也一下子大了很多,因此專家級(jí)的題目更多地還是依靠模式識(shí)別來完成。在非常有限的幫助下,Vita哥哥可以完成31-38題,平均每道題用時(shí)15分鐘,不過39和40確實(shí)就非常難了,特別是第40題,他在推理的時(shí)候出現(xiàn)了一個(gè)邏輯漏洞,但我被他帶進(jìn)去了,沒能發(fā)現(xiàn)這個(gè)漏洞,于是兩個(gè)人折騰了許久才做出來。

陪玩心得

  • 正確運(yùn)行程序是基礎(chǔ),提醒孩子運(yùn)行程序時(shí)一定要仔細(xì),執(zhí)行了錯(cuò)誤顏色格子的命令,漏掉了一個(gè)命令,或者左右搞反,都是孩子會(huì)常犯的錯(cuò)誤。
  • 引導(dǎo)孩子仔細(xì)觀察棋盤,尋找其中包含的模式和規(guī)律,以及尋找限制性的條件(比如長條路徑、白格等)作為思考的突破口。
  • 引導(dǎo)孩子進(jìn)行簡單的邏輯思考,比如說從一個(gè)格子到另一個(gè)格子有幾種走法?如果采用某一種走法,和其他相同顏色的格子之間是否會(huì)產(chǎn)生矛盾?注意提醒孩子在思考時(shí)遵循MECE(不重復(fù)、不遺漏)原則。

//CODE系列之2:Rover Control

第二款玩具叫Rover Control,包裝盒上是一個(gè)……看名字應(yīng)該是火星車一類的東西。跟第一款一樣,這款也是包含40道題目,不過打開看看就發(fā)現(xiàn)里面的東西跟第一款是完全不一樣滴:

一臉懵逼,怎么這么多東西!左上角是謎題冊,右上角是一堆可以摳下來的卡片,中間還有三支彩色筆,左下角是4張地圖,右邊兩本分別是說明書和答案。

這個(gè)怎么玩?

這款游戲花頭真心太多,具體的還得看說明書( 官方電子版),我看看能不能用最簡單的語言給解釋清楚。首先,看最簡單的題目1:

你的任務(wù)是,在地圖上用彩色筆把路徑涂上顏色,使得火星車可以按照規(guī)定好的路線(course)從起點(diǎn)走到終點(diǎn),但是:每條路徑只能涂一種顏色,且對(duì)于地圖上任意一個(gè)格子,都不能連接兩條顏色相同的路徑。右上角的小圖是地圖初始配置,上面顯示了起點(diǎn)在7號(hào)格,終點(diǎn)在9號(hào)格,以及4條已經(jīng)規(guī)定好顏色的路徑。如果我們要使火星車從7走到9,中間經(jīng)過3條路徑,顯然只有一種走法:7→4→1→9,把這3條路徑分別涂上紅、藍(lán)(初始已涂好)、紅,就算是過關(guān)啦。

這款游戲里面的彩色筆是水性白板筆,地圖板上有一層光滑的覆膜,因此玩好之后可以用筆蓋子上的擦子把顏色擦掉,以便繼續(xù)玩下一關(guān)。

你以為這款游戲只是這么小兒科么?眼花繚亂的還在后面!到了入門級(jí)的后面幾道題,又增加了一個(gè)叫檢查點(diǎn)(checkpoint)的玩意兒:

檢查點(diǎn)是啥呢?就是規(guī)定你必須要經(jīng)過某些格子啦。比如這一關(guān),題目左上角的檢查點(diǎn)清單里面寫著5和1,意思就是第一個(gè)檢查點(diǎn)是5,第二個(gè)檢查點(diǎn)是1。從起點(diǎn)1開始走,經(jīng)過3條路徑到達(dá)第一個(gè)檢查點(diǎn),也就是必須到達(dá)5,然后再經(jīng)過3條路徑到達(dá)第二個(gè)檢查點(diǎn),也就是必須到達(dá)1。檢查點(diǎn)是游戲中一個(gè)非常重要的限定條件,它除了給你更多的限制,也會(huì)給你更多的解謎線索。

到了中級(jí)題目,又來幺蛾子了!多了充電站(charging stations)和數(shù)據(jù)傳輸站(data upload stations),果然是玩火星探索啊,入戲好深!這倆玩意兒長啥樣呢?看這個(gè):

看得真是要頭暈了。充電站和數(shù)據(jù)傳輸站其實(shí)都是判斷條件,看路線上面菱形的塊就代表?xiàng)l件分支,判斷火星車現(xiàn)在所在的格子是不是一個(gè)充電站(或者數(shù)據(jù)傳輸站),判斷結(jié)果會(huì)影響程序的流向,后面的虛線則代表循環(huán)。稍微懂一點(diǎn)編程的人可能能看出來,通過條件分支判斷是進(jìn)入循環(huán)還是跳出循環(huán),這就是一個(gè)while循環(huán)了。

你以為這樣就完了嗎?太天真了!高級(jí)題目又搞出了另一個(gè)幺蛾子——土壤采樣(terrain samples),不得不再次感嘆入戲真的太深啊……

所以這貨又是幾個(gè)意思?其實(shí)它就是一個(gè)計(jì)數(shù)器,要配合左上角那張卡片使用。六角形的塊判斷當(dāng)前土壤采樣的數(shù)量是否到達(dá)某個(gè)值,然后根據(jù)判斷結(jié)果進(jìn)行分支,選擇進(jìn)入循環(huán)或者跳出循環(huán),在循環(huán)中會(huì)對(duì)土壤采樣數(shù)量+1,這時(shí)就把卡片旁邊的指針往上推。稍微懂點(diǎn)編程的人到這里又要覺得眼熟了,因?yàn)閹в?jì)數(shù)器的循環(huán)就是for循環(huán)嘛!

這么多幺蛾子都說完了,感覺這個(gè)游戲夠復(fù)雜了吧,別忙,還沒完!到了專家級(jí)題目,又增加了一輛火星車!兩輛火星車的程序是相同的,但它們各自的起點(diǎn)和終點(diǎn)都不同,因此你繪制的路徑顏色必須能夠同時(shí)滿足兩輛火星車都從起點(diǎn)到達(dá)終點(diǎn),想想就搞腦子??!

孩子能學(xué)到什么?

這款游戲的主題是Control Structures(控制結(jié)構(gòu)),所謂“控制結(jié)構(gòu)”就是通過分支、循環(huán)等方式根據(jù)條件來控制程序的走向。

通常我們學(xué)編程的時(shí)候,都是學(xué)習(xí)如何自己編寫這些控制結(jié)構(gòu),但這款游戲的思路卻是反的,控制結(jié)構(gòu)已經(jīng)給你了,而你需要根據(jù)這些控制結(jié)構(gòu)來構(gòu)建滿足條件的路徑。盡管你不需要自己編寫這些控制結(jié)構(gòu),但在構(gòu)建路徑的過程中,你必須能夠完全理解這些控制結(jié)構(gòu)的工作方式,不然你不可能構(gòu)建出正確的路徑,這就是這款游戲設(shè)計(jì)最巧妙的地方。

另外,跟上一款游戲一樣,“運(yùn)行程序”其實(shí)是非常重要的一個(gè)環(huán)節(jié)。這款游戲的程序規(guī)則比上一款要復(fù)雜很多,因此對(duì)于孩子來說,就算不玩解題,如果能按照畫好的路徑正確說出程序的運(yùn)行過程,也是非常非常不容易的一件事了。我甚至可以毫不夸張地說,對(duì)于這款游戲,運(yùn)行程序的過程比解謎的過程更像編程,連官方說明書里都說:這款游戲的意義在于“模擬真正的計(jì)算機(jī)運(yùn)行程序的過程”,而“用眼睛和大腦模擬程序運(yùn)行”是程序員的一項(xiàng)重要能力。而且,游戲題目中給出的“路線”,實(shí)際上就是真正的編程中經(jīng)常使用的“流程圖”(flow chart),通過玩這款游戲,孩子就潛移默化地記住了流程圖是長啥樣的,是干啥用的,即便將來不去學(xué)編程,流程圖在很多其他方面也都可以派上用場,比如項(xiàng)目管理、活動(dòng)組織等等。

看Vita哥哥給你真人演示如何正確運(yùn)行帶分支和循環(huán)的程序(請忽略哥哥感冒吸鼻涕的聲音):

至于解謎,在這款游戲中,會(huì)大量運(yùn)用回溯(backtracking)的方法。回溯不但是一種人類思考問題的方法,同時(shí)也是一種重要的計(jì)算機(jī)算法(algorithm)。簡單來說,這款游戲的解謎過程就是從若干種可能的路徑中搜索出正確的一種,而在搜索的過程中我們會(huì)遇到分叉,也就是從某一步開始可能有幾種不同的走法,需要從其中一種開始嘗試,如果嘗試到最后不成功,就需要回退到分叉的地方,減掉錯(cuò)誤的分叉,然后繼續(xù)嘗試其他的分叉,直到最終找出正確的解。這種方法也叫深度優(yōu)先搜索(depth-first search, DFS)。

在運(yùn)用回溯的時(shí)候,我們需要知道當(dāng)失敗的時(shí)候要回退到哪個(gè)位置,在玩這款游戲的時(shí)候,我們可以教孩子在分叉的地方做記號(hào),比如這樣:

上面這張圖里,10號(hào)格子(左手擋住了)的地方我們有兩種走法,一種是走到7,一種是走到0,這兩種走法都能滿足當(dāng)前的約束條件。這時(shí)我們可以在這個(gè)地方做記號(hào)(圖上的藍(lán)色圓圈),然后先嘗試7,一直嘗試下去之后發(fā)現(xiàn)到了某一步走不下去了,這時(shí)就把分叉之后的路徑全部擦掉,也就是退回到分叉的位置,繼續(xù)嘗試另一種走法(走到0),并且把這個(gè)記號(hào)也擦掉(因?yàn)橐呀?jīng)減到一種可能性,即消除了分叉)。最后發(fā)現(xiàn)第二走法是正確的:

如果前一個(gè)分叉還沒消除,后面又產(chǎn)生了新的分叉,那么回溯的時(shí)候要先回退到新的分叉(也就是最近的一個(gè)分叉),直到把這個(gè)分叉完全消除之后,如果還是不行,再退回到上一個(gè)分叉。

這個(gè)到底難不難?

吸取了上次的教訓(xùn),除了入門級(jí)之外,這次我不讓Vita哥哥大幅度跳題了,但由于時(shí)間有限(編輯催稿~),一道一道做確實(shí)來不及,只能做一道跳一道,也就是做了一半的題目。

從Vita哥哥的試玩表現(xiàn)來看,我認(rèn)為這款游戲比第一款上手要難一點(diǎn),主要可能是因?yàn)橐?guī)則實(shí)在太復(fù)雜了,但只要吃透了規(guī)則,題目本身的推理難度并不算很高。

Vita哥哥在入門級(jí)題目上基本沒遇到什么困難,但是到了中級(jí)之后,由于一下子多了很多要素,某些題目上顯得稍微有點(diǎn)吃力,其中的一個(gè)難點(diǎn)就是檢查點(diǎn)的用法。檢查點(diǎn)的作用是提供下一步要走到的目標(biāo),有了目標(biāo),才能規(guī)劃路徑,明白這個(gè)道理之后,解題就變得順利多了。

而到了高級(jí)題目,我感覺反而比中級(jí)要順,可能是因?yàn)榈搅诉@個(gè)階段他已經(jīng)把復(fù)雜的規(guī)則都吃透了,而且學(xué)會(huì)了回溯以及做分叉標(biāo)記,于是高級(jí)題目他都能在只需要很少幫助的情況下自己完成。而專家級(jí)題目由于增加了一輛火星車,對(duì)于邏輯推理的要求要更高一些,但從Vita哥哥的表現(xiàn)來看,我感覺難度也還算好,雖然比高級(jí)題目需要更多一點(diǎn)幫助(主要是提醒他兩輛火星車路線的推理難度可能不一樣,要根據(jù)線索去評(píng)估一下),但基本上沒遇到卡殼的情況,最后的第40題花了大約20分鐘,也順利完成了。

陪玩心得

  • 這款游戲需要頻繁的畫線和擦線,有些孩子(比如我家Vita哥哥)對(duì)這種工作表示厭倦,而且這種工作也確實(shí)會(huì)打斷思路,所以畫線擦線的事家長可以代勞,只要孩子說出正確的畫法就好。
  • 運(yùn)行程序的過程是這款游戲的精髓,最好讓孩子在運(yùn)行的時(shí)候說出每一步的走法,尤其是遇到判斷和計(jì)數(shù)器檢查的時(shí)候。說明書上建議運(yùn)行的時(shí)候由一個(gè)人說出命令,另一個(gè)人來移動(dòng)火星車,我覺得這也是一個(gè)好辦法。
  • 檢查點(diǎn)是解題的重要線索,不但能幫你判斷目標(biāo),還能幫你判斷什么時(shí)候該跳出循環(huán)(比如上面的第40題);回溯是解題的重要方法,做分叉標(biāo)記能幫助你更好地使用回溯。

//CODE系列之3:Robot Repair

終于玩到最后一款啦,這款的名字叫Robot Repair,名字很直白,就是修理壞掉的機(jī)器人,可是修機(jī)器人怎么搞成桌游呢?還是先打開盒子看看里面有些啥:

這次的看起來還好,沒有上一款那樣多到抓狂的部件,左上角是謎題冊,右上角是說明書和答案,左下角是解題用的電路板,右下角是一大堆小牌子,綠色的是TRUE,背面是紅的的FALSE,黑色的代表電池,下面各種顏色的寫著ON,背面是OFF。

這個(gè)怎么玩?

和前兩款游戲一樣,官方也發(fā)布了 電子版的說明書,有興趣可以去看看,在這里我還是嘗試給大家簡單解釋一下哈。首先看最簡單的題目1:

這款游戲的題目要和相對(duì)應(yīng)的電路板放在一起用,你的任務(wù)就是在電路板上寫有數(shù)字的格子安裝電池,打開(ON)其中某些線路的電源開關(guān),使得整個(gè)電路的狀態(tài)同時(shí)滿足題目中規(guī)定的全部條件。什么?看不懂?我覺得我也沒看懂。好吧,咱們實(shí)際操作一下。這道題中規(guī)定的條件是打開黑色、藍(lán)色、紅色和綠色的線路,這4個(gè)條件必須同時(shí)滿足,也就是說,這4條線路必須同時(shí)處于打開(ON)狀態(tài)。那么電池怎么個(gè)裝法呢?只要一條線路上面存在電池,這條線路就打開了,題目規(guī)定我們只能使用2個(gè)電池,于是我們可以在3號(hào)格子放一個(gè)電池,同時(shí)打開黑色和紅色線路,然后在8號(hào)格子放一個(gè)電池,同時(shí)打開藍(lán)色和綠色線路,這道題就解完了。

看過之前兩款游戲的套路之后,你肯定知道這款游戲沒那么簡單,后面還有很多幺蛾子對(duì)吧?沒錯(cuò),后面的幺蛾子就是,題目規(guī)定的條件不是簡單的羅列,而是需要進(jìn)行布爾邏輯運(yùn)算,看這個(gè):

嚇尿了嗎?你看,這才只是入門級(jí)的題目……好了我來解釋一下,這里面出現(xiàn)了兩種邏輯運(yùn)算,一種是OR(或)運(yùn)算,一種是NOT(非)運(yùn)算,學(xué)過電路的大概都知道邏輯門,沒錯(cuò)就是這種玩意兒了。這個(gè)該怎么算呢?NOT比較簡單,就是把后面的條件反過來就行了,比如第1行第2個(gè)條件(NOT Yellow)就代表黃色線路關(guān)閉(OFF)。OR的意思是幾個(gè)條件里面只要至少一個(gè)條件成立時(shí)就成立,比如第2行第1個(gè)條件(NOT Green OR Blue)就代表“綠色線路關(guān)閉”和“藍(lán)色線路打開”這兩個(gè)條件之中,至少有一個(gè)成立即可。其他包含3個(gè)條件的OR也是一樣的,其中至少有一個(gè)成立就行了。大家可能還注意到,整個(gè)條件表的左上角有一個(gè)很大的AND(與),它表示所有條件必須全部成立,也就是我們在游戲目標(biāo)中說的那個(gè)“同時(shí)滿足題目中規(guī)定的全部條件”。AND是整個(gè)游戲的全局邏輯條件。

所以這種題怎么解呢?基本思路是,先看確定的條件,比如上面的Purple和NOT Yellow,然后再根據(jù)這些條件推理出其他條件,遇到無法直接推理的就做假設(shè)嘗試,接下來根據(jù)所有推出的條件在電路板上放上相應(yīng)的ON和OFF牌子,最后根據(jù)這些牌子來擺放電池。這個(gè)過程實(shí)在太復(fù)雜了,所以還是讓Vita哥哥拍了一個(gè)實(shí)戰(zhàn)視頻,雖然其實(shí)他講得也不怎么清楚吧……

已經(jīng)感覺暈暈的?別忙,整個(gè)游戲里面包含的邏輯運(yùn)算種類當(dāng)然不止這些,除了AND、OR、NOT之外,這款游戲還包括IFF(當(dāng)且僅當(dāng))、XOR(異或)、NAND(與非)、NOR(或非)這些邏輯運(yùn)算。為了讓大家感覺更加暈暈的,我來畫一張表:

上面這張表在邏輯運(yùn)算中叫真值表(truth table),其中T表示真,F(xiàn)表示假。以O(shè)R為例,兩個(gè)輸入值(P和Q)只要至少有一個(gè)是T,則P OR Q就是T,只有當(dāng)兩個(gè)都為F時(shí),P OR Q才為F。只有把這個(gè)表搞清楚了,這個(gè)游戲才能玩下去,呵呵……

孩子能學(xué)到什么?

這款游戲的主題是Boolean Logic(布爾邏輯),所謂布爾邏輯的基本內(nèi)容就是我們上面貼的這張真值表了。

布爾邏輯運(yùn)算在真正的編程中是非常重要的,因?yàn)槲覀冊诰幊痰臅r(shí)候經(jīng)常要根據(jù)不同的條件進(jìn)行判斷,然后執(zhí)行不同的邏輯,而條件判斷使用的就是布爾表達(dá)式。舉個(gè)例子,對(duì)于一個(gè)紅綠燈,如果我們需要在紅燈的時(shí)候停下,那么我們實(shí)際告訴計(jì)算機(jī)的是:如果(紅燈亮)為True,就停下。括號(hào)里面的內(nèi)容就是布爾表達(dá)式,我們也可以管它叫一個(gè)命題(statement)。如果我們說,紅燈或者黃燈亮都要停下,那么就是:如果(紅燈亮 OR 黃燈亮)為True,就停下。而我們知道紅綠燈只有三種狀態(tài),那么上面的邏輯也可以說:如果(NOT 綠燈亮)為True,就停下。這種邏輯思維的能力,不僅對(duì)編程有用,對(duì)于分析和解決任何問題都是非常重要的。

除了條件判斷之外,布爾邏輯運(yùn)算更是計(jì)算機(jī)進(jìn)行各種計(jì)算的基礎(chǔ)。我們知道計(jì)算機(jī)是用二進(jìn)制來進(jìn)行運(yùn)算的,二進(jìn)制的每一位(比特)都只有0和1兩種狀態(tài),如果我們將0和1對(duì)應(yīng)False和True,那么布爾邏輯運(yùn)算就可以等價(jià)為數(shù)值運(yùn)算。事實(shí)上,計(jì)算機(jī)里的數(shù)值運(yùn)算就是利用布爾邏輯運(yùn)算(邏輯門)來完成的,比如說二進(jìn)制的加法就是用一個(gè)AND運(yùn)算和一個(gè)XOR運(yùn)算來完成的。因此,掌握布爾邏輯運(yùn)算也可以幫助孩子更好地理解計(jì)算機(jī)的工作原理。

這套游戲解題的過程是比較經(jīng)典的邏輯推理過程,即通過已知條件和邏輯關(guān)系一步一步地推出其他條件,從而得到最終的解。其實(shí)這個(gè)過程和我們學(xué)習(xí)數(shù)學(xué)時(shí)做證明題的過程是非常類似的。我們說數(shù)學(xué)能力絕不能等價(jià)于計(jì)算能力,其實(shí)有很多數(shù)學(xué)家都不善于計(jì)算,數(shù)學(xué)能力應(yīng)該更偏重于邏輯推理能力,因?yàn)閿?shù)學(xué)本身就是一個(gè)嚴(yán)密的邏輯體系。很多孩子小學(xué)時(shí)數(shù)學(xué)成績很好,到中學(xué)就漸漸不行了,主要是因?yàn)橹袑W(xué)數(shù)學(xué)已經(jīng)基本脫離了計(jì)算,逐漸進(jìn)入推理和證明的階段了。因此,我認(rèn)為這款游戲?qū)壿嬐评砟芰Φ腻憻挘灿兄谂囵B(yǎng)真正的數(shù)學(xué)能力。

這個(gè)難不難?

這款游戲的難度在于邏輯這個(gè)東西太抽象了,需要孩子的抽象思維能力達(dá)到一定階段之后才能駕馭它,不然看見那張真值表直接就蒙圈了。大概Vita哥哥在抽象思維這方面還算強(qiáng)吧,當(dāng)然也和他在其他編程游戲中接觸過布爾邏輯有關(guān)系,我覺得這款游戲他玩起來基本上沒什么難度,比前兩款游戲的表現(xiàn)似乎都更好一些,高級(jí)難度的題目也基本上可以自己推理、做假設(shè)、解題。專家級(jí)的題目主要是多了兩個(gè)新的邏輯運(yùn)算(NOR和NAND),這兩個(gè)邏輯運(yùn)算平時(shí)很少見到,其實(shí)就是把OR和AND反過來,只要理解了之后也沒什么難度,后面無非就是需要做假設(shè)的可能性數(shù)量比較多一些,只要有耐心都問題不大,哈哈,不過對(duì)于孩子來說,既燒腦還需要耐心的東西應(yīng)該還是相當(dāng)有挑戰(zhàn)的吧。

如果孩子覺得解題的過程太復(fù)雜,和前兩款游戲一樣,這款游戲也可以反過來玩。也就是先按照答案把電池在電路板上擺好,然后讓孩子根據(jù)電池的位置先確定每條線路的開關(guān)狀態(tài),然后再根據(jù)這些狀態(tài)判斷題目中給出的條件的真假,并根據(jù)邏輯運(yùn)算關(guān)系確定每一組條件的真假。通過這個(gè)過程,孩子也能夠?qū)W會(huì)布爾邏輯運(yùn)算的規(guī)則,等到吃透這些規(guī)則之后,就可以嘗試自己解題了。

陪玩心得

  • 邏輯推理是這款游戲的精髓,而且推理的過程比結(jié)果重要,盡量引導(dǎo)孩子說出每一步的推理過程,一定要注意推理當(dāng)中每一步邏輯的嚴(yán)密性,只有當(dāng)沒有足夠的已知條件繼續(xù)推理時(shí),才能做假設(shè)。
  • 對(duì)于沒接觸過邏輯運(yùn)算的孩子,可以嘗試通過一些具體的例子來說明NOT、AND、OR這些邏輯運(yùn)算的意義,比如紅綠燈就是一個(gè)不錯(cuò)的例子。
  • 對(duì)于年齡稍大,有一定邏輯思維能力的孩子,可以引導(dǎo)他們觀察和計(jì)算布爾表達(dá)式之間的等式關(guān)系,比如:P NOR Q = NOT (P OR Q) = (NOT P) AND (NOT Q),以及給他們講一講如何通過邏輯門的組合來計(jì)算二進(jìn)制加法,幫助他們發(fā)現(xiàn)邏輯運(yùn)算的更多奇妙之處。

總結(jié)一下吧

Thinkfun的這三款//CODE玩具,設(shè)計(jì)得非常科學(xué)和用心,可以說是誠意滿滿,對(duì)得起Thinkfun的招牌。下面說說我的推薦理由吧:

  • 這三款游戲的內(nèi)容和玩法完全不重復(fù),涵蓋了包括模式識(shí)別、過程構(gòu)建、控制流程、邏輯運(yùn)算等對(duì)于學(xué)習(xí)編程非常重要的要素,如果吃透了這三款游戲,學(xué)編程必定事半功倍。此外通過解題的過程還能夠鍛煉孩子的邏輯推理、專注力等關(guān)鍵能力。
  • 難度配置合理,入門的題目非常簡單,容易上手,而高級(jí)的題目又非常有挑戰(zhàn)性,如果不是像我家Vita哥哥這種為了寫評(píng)測突擊填鴨的話,一盒玩具還是能玩上很久的。
  • 一物多玩,對(duì)于年齡較小又沒接觸過編程的孩子來說,可以采用變通的玩法(詳見我在每款玩具里的說明),降低門檻,作為編程和邏輯思維的啟蒙。
  • 和其他學(xué)習(xí)編程的電子產(chǎn)品不同,//CODE系列是不用電的桌游,不但打消了很多家長對(duì)電子屏幕的顧慮,而且相比電腦、機(jī)器人這些東西,價(jià)格便宜不知道多少倍了。

下面再說幾個(gè)需要注意的問題:

  • 玩具的適用年齡都是8歲+,但是其中簡單的題目,特別是On The Brink那款,對(duì)于更小一點(diǎn)的孩子來說也適用,有興趣的話不妨試試看。
  • 雖然官方?jīng)]有刻意強(qiáng)調(diào)這三款游戲的順序,但我建議按照上面給出的順序來玩,因?yàn)檫@三款玩具的抽象程度是按順序遞增的(雖然抽象程度不代表難度),第一款On The Brink是規(guī)則最簡單最容易上手的(Vita哥哥甚至不需要看說明書就會(huì)玩),而第三款Robot Repair則是最抽象的,需要把所有規(guī)則都搞懂才能玩起來。
  • 和其他桌游一樣,由于一切都是全手動(dòng)的,而且規(guī)則的設(shè)置又比較復(fù)雜,需要家長花時(shí)間陪玩,而且需要引導(dǎo)孩子的思路(詳見對(duì)每款游戲的說明)。
  • 這套玩具培養(yǎng)的是編程的思維方式,盡管思維方式是編程的基礎(chǔ),但除了思維方式之外,編程還需要其他一些技能,比如學(xué)習(xí)編程語言、數(shù)據(jù)結(jié)構(gòu)和算法,這些內(nèi)容往往無法通過單純的玩游戲來學(xué)習(xí)。如果發(fā)現(xiàn)孩子對(duì)這方面感興趣,不妨繼續(xù)深入學(xué)習(xí)吧。

好了,祝大家玩得開心,Happy Coding!


回應(yīng)37 舉報(bào)
贊26
收藏203
8年前
小花生御用鑒定師,值得信賴!小孩還小,預(yù)先學(xué)習(xí)一下。
8年前
高大上的游戲,玩起來也是好專業(yè)。
8年前
think fun的玩具的確非常益智
8年前
請問,和他家的code master怎么比?還有更早的編程烏龜?請問樓主都有比較過嗎?
8年前
灰灰216 請問,和他家的code master怎么比?還有更早的編程烏龜?請問樓主都有比較過嗎?
Robot Turtle更簡單,可以多人一起玩,適合年齡更小的孩子,根據(jù)我周圍朋友的反饋,大概4歲就可以玩,它只涉及指令序列和路線規(guī)劃,我認(rèn)為它是這套里面的第1款On The Brink的簡化版。

Code Master和這套//CODE是同一個(gè)人設(shè)計(jì)的,你可以認(rèn)為Code Master是他的早期作品。Code Master是非常straightforward的那種編程游戲,//CODE則是換了另一種設(shè)計(jì)思路,從更獨(dú)特的角度去訓(xùn)練編程的思維方式,而且它比Code Master具有更多的元素(比如計(jì)數(shù)器變量、布爾邏輯),我認(rèn)為//CODE更全面,但可能更難。
8年前
周花卷 Robot Turtle更簡單,可以多人一起玩,適合年齡更小的孩子,根據(jù)我周圍朋友的反饋...
謝謝!非常清楚????我之前差點(diǎn)要買code master了,看了半天總覺得不是特別滿意,確實(shí)你介紹的這三款不錯(cuò),尤其第三款布爾邏輯
8年前
在美亞上沒找到
8年前
樓主介紹的很詳細(xì),心動(dòng),在target上找到了。請問還有一款code master感覺怎么樣?小學(xué)低年級(jí)的那些機(jī)器人興趣班是否值得上?編程門外漢期待回復(fù)
8年前
Alvin的花生 樓主介紹的很詳細(xì),心動(dòng),在target上找到了。請問還有一款code master感覺怎么樣...
你是要海淘嗎?小花生今天開團(tuán)購的說。Code Master上面有人問過,看我的回復(fù)。機(jī)器人興趣班質(zhì)量良莠不齊吧,我娃沒上過不好說,但是機(jī)器人里面涉及的編程比較零散。
更多
發(fā)布

推薦閱讀

周花卷
周花卷
2017
2011