資訊內(nèi)容
就一個(gè) Scratch少兒編程 圖章,我竟玩得停不下來(lái)
一個(gè)讓我犯愁的工作坊
這周末的 Scratch Day ,Mitchel Resnick 會(huì)來(lái),當(dāng)然得要認(rèn)真準(zhǔn)備。一共六個(gè)工作坊,有樂(lè)高有 micro:bit,Tom 和老風(fēng)的 MakeyMakey 更是設(shè)計(jì)了一大堆歡樂(lè)無(wú)比的體感游戲。相比之下,我和娜娜的 Scratch 純軟件工作坊氣勢(shì)上就輸了一大截,真擔(dān)心旁邊教室扮成金剛的 Tom 一聲歡呼孩子們就全跑了去。
思來(lái)想去,只能借助打印機(jī)和徽章機(jī):教孩子們用代碼畫(huà)畫(huà),現(xiàn)場(chǎng)打印成貼紙或壓成徽章,應(yīng)該還能多些誘惑力。好像是 Jovi 吧,聽(tīng)我說(shuō)了“用代碼畫(huà)畫(huà)”后馬上補(bǔ)了句“正好新年剪窗花”,于是我們的工作坊就叫做“窗花代碼藝術(shù)創(chuàng)作”。
用代碼來(lái)畫(huà)窗花是最容易不過(guò)的事。信手涂鴉幾個(gè)奇怪造型,再旋轉(zhuǎn)著敲圖章,窗花就畫(huà)好了。
同樣的造型,旋轉(zhuǎn)不同角度重復(fù)敲不同次數(shù)的章,效果會(huì)就不一樣。
但那么簡(jiǎn)單的玩法可實(shí)在拿不出手啊~~翻出我的“代碼藝術(shù)課”私家珍藏,找到“對(duì)稱圖案”這章中的一個(gè)程序,稍作改動(dòng)就成為剪窗花游戲。
美滋滋的玩了好久后,我開(kāi)始犯愁 Scratch Day 那天要怎么教孩子們。別的不說(shuō),估計(jì)光講完八個(gè)對(duì)稱位置的坐標(biāo)關(guān)系,孩子們就都找 Tom 去玩了。
繼續(xù)在我的“代碼藝術(shù)課”私家珍藏里找,翻來(lái)翻去都是邏輯性很強(qiáng)的作品,好些甚至還用到了分形、三角函數(shù)等知識(shí)。這些作品很能體現(xiàn) Seymour Papert 的“通過(guò)計(jì)算機(jī)去學(xué)習(xí)其它知識(shí)”的思想,但我畢竟不是去上數(shù)學(xué)課的呀。
反省:邏輯 or 創(chuàng)意?
想起上周末代碼搗鼓日的晚上,和老師們聊起從 Piaget 到 Papert 到 Resnick 的思想的演變。Resnick 很好的繼承了 Papert 的思想,且在其基礎(chǔ)上順應(yīng)時(shí)代需求,將關(guān)注點(diǎn)放到了創(chuàng)造力培養(yǎng)上。那我的用代碼畫(huà)窗花的工作坊,怎樣才能超越 LOGO 式的畫(huà)畫(huà),更多的發(fā)揮孩子們的創(chuàng)造力呢?
我沒(méi)有答案。
干脆,自己先來(lái)玩一玩吧。
盡可能降低代碼的邏輯要求,甚至不用畫(huà)線功能,看看光靠敲圖章,能敲出怎樣的創(chuàng)意來(lái)。
蒙德里安?草間彌生?如果不使用復(fù)雜邏輯,我該怎樣才能創(chuàng)作出有藝術(shù)味道的畫(huà)呢?也許只能畫(huà)畫(huà)波洛克?
我試著學(xué)草間彌生:
用點(diǎn)點(diǎn)裝飾圣誕樹(shù):
還用來(lái)給甜甜圈添加糖粒:
但還能玩什么呢?我的創(chuàng)意又進(jìn)入了死胡同。
忽然看著被彩燈掩埋的圣誕樹(shù),我想到了修拉:我可以用點(diǎn)彩的方式來(lái)給窗花涂色呢。
玩出來(lái)的創(chuàng)造力
只要把造型設(shè)成一個(gè)小點(diǎn),在畫(huà)布上隨機(jī)移動(dòng),遇到不是白色的地方蓋章,就可以了呢,代碼比給圣誕樹(shù)裝彩燈更簡(jiǎn)單。
實(shí)驗(yàn)一:
通過(guò)顏色特效代碼,可以讓造型變成各種彩點(diǎn)。所以在下圖背景上運(yùn)行代碼,就可以得到一朵五彩窗花。
(重要技巧:按住shift鍵的同時(shí)點(diǎn)擊綠旗,可以進(jìn)入加速模式。)
實(shí)驗(yàn)二:
繼續(xù)玩,改一下顏色特效的隨機(jī)數(shù)范圍,就是冰藍(lán)的雪花了。
實(shí)驗(yàn)三:
換個(gè)顏色范圍,就是烈焰般的色彩,更適合用婀娜女郎做背景圖。
實(shí)驗(yàn)四:
不過(guò)我還是更喜歡冰藍(lán)的雪花,從網(wǎng)上找了些雪花剪影,發(fā)現(xiàn)很有意思,于是最初的窗花代碼又可以派上用場(chǎng)了,還是省略了變量的極簡(jiǎn)版:
正在我精心設(shè)計(jì)雪花瓣的時(shí)候女兒跑來(lái)了,亂涂了幾根線條發(fā)現(xiàn)效果竟也都不錯(cuò)。特別是搞笑的卡通上下眼,我怎么都想象不出它能演變成那么正常的一幅窗花。
實(shí)驗(yàn)五:
現(xiàn)在程序是:按 a 鍵畫(huà)黑色窗花剪影,按空格點(diǎn)彩上色。玩夠了隨機(jī)色后,我的邏輯腦又不甘靜默了。添加一個(gè)求距離的公式,染出彩虹色的花。
如果不想教孩子們公式,其實(shí)也有簡(jiǎn)單方法:添加一個(gè)在(0,0)位置的“原點(diǎn)”角色,然后復(fù)雜的公式就變成如下易理解的代碼:
實(shí)驗(yàn)六:
繼續(xù)玩,把圓點(diǎn)變成細(xì)斜線后圖畫(huà)的風(fēng)格都變了。
實(shí)驗(yàn)七:
繼續(xù)玩。之前是“碰到白色不成立就敲圖章”,彩點(diǎn)都嚴(yán)格畫(huà)在黑色輪廓之內(nèi)。將判斷條件換成“碰到黑色就敲圖章”,彩點(diǎn)會(huì)跑到輪廓之外,畫(huà)出來(lái)的是毛毛的感覺(jué)。
實(shí)驗(yàn)八:
畫(huà)的彩點(diǎn)多了把黑色全部蓋住成了一個(gè)個(gè)圓環(huán),不夠有趣,再添加一個(gè)亮度的隨機(jī)值:
實(shí)驗(yàn)九:
旋轉(zhuǎn)的花紋玩過(guò)癮了,換成平移。小時(shí)候也剪過(guò)這樣拉花式的窗花呢。
實(shí)驗(yàn)十:
把顏色設(shè)為x坐標(biāo),就出現(xiàn)了彩虹拉花。
實(shí)驗(yàn)十一:
按y坐標(biāo)來(lái)設(shè)顏色,是另一種趣味。我應(yīng)該做一個(gè)只有上半部分的火焰圖案。
實(shí)驗(yàn)十二:
直接拿 Scratch 自帶的造型也可以作畫(huà)
上圖使用的是“碰到白色不成立就敲章”的邏輯。如果要用“碰到黑色就敲章”的邏輯,只需要把背景造型的亮度改成-100就可以了。
實(shí)驗(yàn)十三:
正當(dāng)我玩得起勁時(shí),女兒又來(lái)?yè)v亂了:她拖動(dòng)蝴蝶角色到處飛,結(jié)果點(diǎn)彩跟著蝴蝶動(dòng),竟然滿屏都是彩點(diǎn)。
這給了我靈感:干脆讓彩點(diǎn)遇到角色就敲圖章吧。為了提升效率,把一個(gè)彩點(diǎn)變成一堆彩點(diǎn)也不錯(cuò)。
結(jié)果很讓人歡喜:圖像如小草般迅速長(zhǎng)成了模板的形狀。
回顧:創(chuàng)意的源泉
近十個(gè)作品、十幾個(gè)實(shí)驗(yàn)玩下來(lái),再回頭去看用了八個(gè)坐標(biāo)關(guān)系的剪窗花游戲,雖然我依舊喜歡它的簡(jiǎn)潔精美,但已經(jīng)清楚的知道:工作坊上我有更值得帶孩子們玩的東西。
用代碼畫(huà)畫(huà)是 LOGO 的標(biāo)志性玩法,用來(lái)教數(shù)學(xué)再好不過(guò),我的整套“代碼藝術(shù)課”中用到大堆的數(shù)學(xué)知識(shí),也正是因此我一直沒(méi)把這門(mén)課做出來(lái):畢竟現(xiàn)在學(xué) scratch 的以低齡孩子為主。作為一個(gè)喜歡邏輯思考的工程師,我的創(chuàng)意也常常是強(qiáng)邏輯性的。但這次,我嘗到了“玩”的精彩。
用點(diǎn)彩法畫(huà)畫(huà),來(lái)自于程序運(yùn)行過(guò)頭后的意外;
兩次靈感突破都來(lái)自女兒的搗亂;
從旋轉(zhuǎn)的窗花到長(zhǎng)條的拉花來(lái)自童年剪紙的記憶;
唯有色彩選擇用到了一點(diǎn)點(diǎn)邏輯思考。其實(shí)我只是還不知道,如果換做孩子們來(lái)寫(xiě)色彩相關(guān)的代碼,會(huì)有什么意外效果給我們帶來(lái)驚喜呢。
