來源:外灘教育 作者:鄧曉磊 2018-06-13 14:39:16
到家,休息好了,我問他:“你想做一個什么游戲呢?”
他認真地思考了一下,回答我說:“我們先做一個簡單點的游戲”。非常的睿智啊,才9歲的孩子,很清楚復(fù)雜的事情要從簡單的部分開始。
其實我心里早想好了思路,先給他講解最簡單的程序的邏輯,讓他有一點成就感,這就是今天的目標(biāo)。
所以,我告訴他我們今天先做一個只有文字的游戲,叫做釣魚。
讓我吃驚的是,他立刻開始規(guī)劃:要有很多種魚,釣到魚可以賣錢,然后可以用錢買道具……
好吧,我理解為他玩過類似的游戲,有一些概念了。
然后,我引導(dǎo)他說:那要不要設(shè)計一部分機會釣不到魚呢?比如釣起來一個炸彈?
然后我就給他講了一個解鎖炸彈的數(shù)字迷你游戲,沒錯,就是經(jīng)典的猜數(shù)字游戲:電腦出一個隨機數(shù)字,玩家來猜,猜對了就炸彈解除,猜錯了就提示數(shù)字太大還是太小。如果超過3次沒猜中,炸彈就爆炸了。
我想可以讓他在玩游戲的過程中,做幾個簡單的數(shù)學(xué)題。并且可以理解編程的最基本的元素——分支和循環(huán),我給他畫了個圖解釋,告訴他綠色的小箭頭就是分支,虛線的大箭頭就是循環(huán)。程序從粉色框開始,一個框一個框地執(zhí)行,檢測到玩家輸入的內(nèi)容就去比對密碼。
如果密碼正確就解除,如果密碼不正確就繼續(xù)判斷是否超過三次,如果超過三次就爆炸,如果低于三次就循環(huán)提示輸入密碼。
這個過程中,我給他講解了Python的基本的賦值、分支和循環(huán),沒有講得很細,主要以實現(xiàn)功能和灌輸概念為主。
接下來,在這個游戲基礎(chǔ)上擴展,就變得較為容易了。
我再給外甥講解了一下關(guān)于對象的概念,并引入了類來作為游戲中各個元素的核心,當(dāng)然,都是以實用性為主,并沒有深入講解。畢竟現(xiàn)在主要培養(yǎng)的是他的興趣和對程序的邏輯的理解。我給他畫了下面這個圖,用來講解整個游戲的邏輯:
游戲開始后,先要輸入玩家的名字,然后根據(jù)名字去查找游戲進度,如果有游戲進度的,就讀取進度,否則就全新開始游戲。
接下來就是一個游戲菜單開始的循環(huán)體,根據(jù)選擇執(zhí)行不同的指令。
如果選擇釣魚,就開始展示隨機的釣魚結(jié)果,如果結(jié)果是釣到炸彈,那就啟動之前的那個猜數(shù)字的炸彈小游戲。
成功地引起了外甥對編程的興趣,萬里長征的第一步已經(jīng)完成了。我和他一下午就耗在這個小游戲里,看著小家伙在紙上快樂地寫寫畫畫,規(guī)劃著游戲的內(nèi)容,設(shè)計魚的種類,金幣數(shù)量等等。
然后和我一起編寫代碼,調(diào)試代碼,聽我講解代碼的原理和運行流程,無比專注,感覺比他打游戲還要快樂。
我當(dāng)然也很快樂,享受和孩子一起的悠閑的時光的同時,讓他接觸了編程,學(xué)了一些以后會對他人生起到正面積極作用的技能。
因為整個游戲比較小,而且并沒有圖形部分,所以幾個小時已經(jīng)可以看到成效了(PS:這也是最重要的,最開始學(xué)編程,一定要讓他快速地獲得成就感,不然時間太長就容易有挫折感,造成興趣流失),電腦上的運行效果如下:
當(dāng)然,為了讓他可以跟小伙伴一起玩(炫耀),我用了一個叫作QPython的手機App來運行剛才編寫的代碼:
因為我用的是Python 3,所以選擇了QPython3的版本來在手機上運行,
最后,奉上完整代碼,請在Python3下運行:
相關(guān)推薦:
小升初試題、期中期末題、小學(xué)奧數(shù)題
盡在奧數(shù)網(wǎng)公眾號
歡迎使用手機、平板等移動設(shè)備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點擊查看