Scratch零基礎魔法編程(三)剪刀石頭布

經過上一講的突擊訓練,我們從門外漢開始走向編程的深坑,我們今天還要對上一講的遊戲進行加強。

上一個遊戲還能演變成什麼遊戲呢?

我其實知道你們想到的是老虎機什麼的,確實,上一個遊戲改改可以變成老虎機,但是我們這不是要教小朋友嗎,怎麼可以學做老虎機?

大於、等於、小於的比較,是不是和剪刀石頭布的遊戲很像呢?我們要學點健康的東西。

好了,不會話了,我們開始:

首先,因為一共只有3樣東西,剪刀石頭布,小貓從當中選一個出來,那麼隨機範圍只有從1-3,我們可以用1代表剪刀,2代表石頭,3代表布,如果小貓隨機選到了2,那就是說明小貓選了剪刀,同理玩家的選擇也是這樣。

然後就還是比較雙方的數字,一共會有多少情況呢?

1-1,1-2,1-3

2-2,2-1,2-3

3-1,3-2,3-3

一共比較9種情況,再給出結果,

最後我們再循環一下,就可以完成這個遊戲。

那我們就先動手試一試看:

1、我們先讓小貓給個提示,說明一下數字代表什麼;

2、然後新建一個變數,讓小貓隨機選擇的這個數字存入變數中,準備作為比較對象,同時也要讓玩家有一個變數,也放入輸入的數字進行比較:

然後準備給小貓的變數充值,當然我們程序員都是叫賦值,其實都是一樣:

然後再放入上節課我們學的隨機模塊:

這樣小貓就會在1-3中隨機選一個數字,對應著也就是剪刀石頭布中的一個。

然後再給玩家變數充值,不,是賦值:

看到偵測模塊裡面的橢圓形的模塊了嗎,是不是和變數的橢圓形很像?

它就是玩家在輸入框中回答之後的內容存儲變數,也就是說其實系統在玩家輸入數字的時候變數已經建立好了,不過我們為了讓程序更有條理看得更清楚,所以再加入了一個「玩家選擇的數」變數,那麼,我們只要將「回答」這個變數賦值給「玩家選擇的數」變數,就可以了:

好了,現在雙方都已經選擇好了,要開始進行上述的九種情況的比較,這個我們在上節課中也已經講過,於是就要用經典的「如果……那麼……」模塊:

但是上節課這裡是比較數字大小,那這個石頭剪刀布我們怎麼比較呢?比小大不可以了啊?

這裡我們就要用到新的姿勢點:

這是「數字和邏輯運算」功能裡面的三個功能模塊,第一個是要同時滿足兩個條件,第二個是只要滿足兩個菱形內容中的一個,第三個是菱形框中的內容不成立。

這是我們程序員以後會經常接觸到的邏輯關係,放在我們今天的遊戲里,那麼就是「小貓選擇了1」且「玩家選擇了1」,這個條件如果成立,就可以放在如果……那麼中執行判斷結果輸出「打平了!」,具體怎麼做呢?看下圖:

將菱形框內放入帶等號的菱形框,然後再放入變數:

上圖做出來了我們第一個判斷情況,那麼就按這個方式,我們可以做出其餘的八種情況,這裡有一個小技巧,我們可以在黃色「如果……那麼」模塊上,單擊滑鼠右鍵,可以出現隱藏菜單:

「添加註釋」就是對這一行代碼進行批註,你可以選擇試一試看,這個不多說;「刪除」也很容易理解,這是我們常用的刪除代碼的方式,我們需要選擇的是「複製」,點一下,哎我去,這個功能模塊包括裡面的模塊都完整的拷貝了一份,這樣我們就只要修改一下裡面的內容就可以了:

修改如下:

看到了嗎,我們把9種比較情況全部都通過代碼寫出來了,如果代碼頁面太長,我們可以滾動滑鼠中間滾輪或是點擊右下角的放大縮小按鈕:

減號是縮小,等號是整理,加號是放大,都點點看可以了解一下。

這樣代碼我們基本都寫完了,不過我們這樣只能玩一次,為了可以不停玩下去,那麼我們就需要用到上節課學習的循環模塊,如果想玩有限次數,那麼就用:

如果不限制,就用:

我們這裡用玩5次來試一試,5次之後小貓和我們告別,遊戲結束:

點擊右下角的減號,縮小代碼塊,然後放入控制模塊裡面的重複執行有限次數代碼,循環5次後,小貓和我們說拜拜然後全部結束:

遊戲已經編寫完成,我們把程序跑起來看看:

我先輸入個1,點一下藍色的勾:

哎呀開場就輸了,再多跑幾次看看有沒有錯誤,程序員叫bug。一定要反覆跑幾次,仔細檢查代碼有沒有問題。

跑完5次後,小貓和我們告辭,遊戲結束。

是不是很快就能寫出很酷的遊戲了?

就問你有沒有成就感?

嗯,有希望,有前途,我們下節課暫時就不繼續學代碼,學習一點scratch的舞台知識,這個也是非常有趣的內容,我們下回見。


本號可接Scratch書籍教程編寫,歡迎出版社前來諮詢。

推薦閱讀:

Scratch少兒編程-小男孩換裝【果果老師】
Scratch零基礎魔法編程(一)為什麼你要學Scratch兒童編程
大家對<少兒編程>怎麼看,有市場嗎?
求scratch兒童創意編程教程/課堂建議?

TAG:趣学Scratch教孩子学编程书籍 | 儿童编程 | 编程 |