wordpress分享到qq空間班級優(yōu)化大師官方免費下載
[導讀]:超平老師的《Scratch藍橋杯真題解析100講》已經(jīng)全部完成,后續(xù)會不定期解讀藍橋杯真題,這是Scratch藍橋杯真題解析第190講。
如果想持續(xù)關(guān)注Scratch藍橋真題解讀,可以點擊《Scratch藍橋杯歷年真題》并訂閱合集,查閱教程更方便。
第15屆藍橋杯省賽已于2024年8月24日落下帷幕,中級組編程題一共有6題,分別如下:
-
抓不住的蜜蜂
-
穿越病毒區(qū)
-
畫臺扇
-
收集松果
-
占領矩陣
-
截取遞增數(shù)
占領矩陣,本題是2024年8月24日舉行的第15屆藍橋省賽Scratch中級組編程第5題,題目要求創(chuàng)作一個占領矩陣作品。點擊綠旗,瞬間出現(xiàn)一個5行5列的白色實心圓矩陣,在展示321倒計時效果后,造型1瞬間占領矩陣,1秒后,造型2從左下到右上逐漸占領矩陣,最后造型1從右上到左下逐漸占領矩陣。
先來看看題目的要求吧。
一.題目說明
編程實現(xiàn):
占領矩陣。
具體要求:
1).?點擊綠旗,瞬間出現(xiàn)一個5行5列的白色實心圓組成的矩陣,如圖所示;
2).?然后,在矩陣中依次顯示數(shù)字3、2、1,每個數(shù)字顯示時長為 0.5 秒,數(shù)字的顯示效果如圖所示;
3).?接下來,
?瞬間占領整個矩陣,如圖所示;
4).?1秒后,
在2秒內(nèi)從左下角開始向右上角按如下規(guī)律逐漸占領整個矩陣;(參考視頻)
5).?最后,
在2秒內(nèi)從右上角開始向左下角按如下規(guī)律逐漸占領整個矩陣,而后游戲結(jié)束。(參考視頻)
評判標準:
-
10分:滿足"具體要求"中的1);
-
20分:滿足"具體要求"中的2);
-
6?分:滿足"具體要求"中的3);
-
22分:滿足"具體要求"中的4);
-
22分:滿足"具體要求"中的5)。
二.思路分析
本題只有一個角色,就是圓圈,如圖所示:
角色一共有4個造型,如圖:
這是典型的克隆題目,考查的知識點主要包括克隆技巧、私有變量、自制積木、事件廣播和列表等。
如果只考慮題目的要求1)、2)、3),那就比較簡單了,直接使用”克隆4兄弟“和”自私的ID“模型。
題目的難點就在于要求4)和要求5),如何按照對角線(包括從左下到右上和從右上到左下)遍歷矩陣,如圖所示:
對于這個問題,一般有如下兩種思路:
-
根據(jù)克隆體所處行和列,尋找規(guī)律,進行斜線遍歷;
-
直接按照對角線克隆圓圈;
相對來說,在Scratch編程中,使用第二種方式更為簡單。
我們先來看兩張圖片吧,第一張圖如下:
第二張圖如下:
熟不熟悉,這不就是金字塔排列么?
所以,我們可以借鑒金字塔的克隆技巧,對”克隆4兄弟“模型稍作一點修改,就可以完成對角線克隆了。
為了方便描述,可以對每一條對角線進行編號,先看左下方的5條對角線,如圖:
首先,從左下到右上,克隆體的數(shù)量依次為1、2、3、4、5,這個可以使用變量來控制克隆體的個數(shù)。
其次,每條對角線的起始x坐標都是一樣的,大概是-95,y坐標相隔一個圓圈的距離,大概是50。
第三,對于每條對角線而言,下一個克隆體(如果有的話)的位置都是在上一個克隆體的位置上右移50、下移50。
這樣一來,我們就可以使用使用”克隆4兄弟“模型結(jié)合變量來克隆這5條對角線了。
同理,對于右上角的對角線,可以畫圖如下:
分析方法基本相同,克隆體的數(shù)量依次為5、4、3、2、1,使用變量來控制其數(shù)量即可。
這一次,每條對角線的起始y坐標都是一樣的,大概是95,而x坐標相隔一個圓圈的距離50。
對于每條對角線而言,下一個克隆體(如果有的話)的位置也是在上一個克隆體的位置上右移50、下移50。
因此,我們可以按照這種方式,從左下到右上依次克隆9條對角線,然后將每條對角線上的克隆體作為一組進行編號。
同時,在克隆圓圈的時候,對每個克隆體進行編號,并將處在數(shù)字3、2、1位置上的編號分別存入三個列表中,這樣就可以輕松地顯示倒計時效果。
關(guān)鍵問題解決了,接下來,我們就進入程序?qū)崿F(xiàn)環(huán)節(jié)。
三.編程實現(xiàn)
根據(jù)上面的思路分析,我們分5步來完成作品:
-
克隆矩陣
-
列表初始化
-
倒計時
-
從下到上占領矩陣
-
從上到下占領矩陣
1. 克隆矩陣
根據(jù)前面的思路分析,我們分兩步來克隆矩陣,先克隆左下角的三角形排列,定義自制積木如下:
代碼不少,說明兩點:
1). 變量”_ID“和”_層“要定義為私有變量,注意它們的初始值和更新位置;
2). 這里使用”起點y“變量來指定對角線的起始y坐標,可以更輕松地控制y坐標的變化;
同理,再定義一個自制積木由于克隆右上方的三角形排列,代碼如下:
代碼基本差不多,強調(diào)3點:
1). 一共有9條對角線,前面已經(jīng)克隆了5條,因此這里只需要克隆4條對角線;
2).?對于右上對角線排列,起點x坐標是變化的,因此使用了變量”起點x“,并設置好其初始值;
3). 注意私有變量”_層“和”_ID“更新的位置;
2. 列表初始化
這一步非常簡單,將處在數(shù)字3、2、1位置上的克隆體的ID分別保存到3個列表中,先創(chuàng)建好”數(shù)字3“、”數(shù)字2“和”數(shù)字1“3個列表。
分別定義自制積木,如下:
這里有一個細節(jié),我們怎么快速確定這些ID呢?
超平老師悄悄的告訴你一個小技巧,可以先將克隆體顯示出來,并說出自己的ID,代碼如下:
執(zhí)行代碼,效果如下:
有了這些編號,就可以輕松地找到每個數(shù)字需要的ID了。
3. 倒計時
有了前面兩步的準備,顯示倒計時就比較簡單了,先在綠旗指令下編寫代碼如下:
對應的,對克隆體編寫代碼如下:
代碼比較簡單,這里就不再解釋了。
4. 從下到上占領矩陣
私有變量“_層”表示的是每個克隆體所在的對角線,如圖:
因此,我們可以定義一個變量“當前層”,表示每次控制的層,依次改變每條對角線上的克隆體。
在綠旗代碼塊中繼續(xù)編寫代碼如下:
對應的,編寫接收廣播的代碼如下:
代碼比較簡單,強調(diào)3點:
1). 顯示倒計時花了1.5秒,還需要等待1秒,因此一共需要等待2.5秒;
2). 發(fā)送廣播消息的代碼一定要寫在綠旗指令下,綠旗指令控制的是本體,只需要本體發(fā)送一個廣播消息即可;
3). 兩次廣播之間稍微等待一下,確保在2秒之內(nèi)能占領矩陣,至于這里的廣播方式,使用哪一種都可以;
5. 從上到下占領矩陣
在上面的代碼塊中繼續(xù)編寫代碼如下:
同理,編寫接收廣播的代碼如下:
至此,整個作品就創(chuàng)作好了,是時候來測試自己的作品啦。
四.總結(jié)與思考
本題是中級組編程部分第5題,分數(shù)為80分,積木塊數(shù)量120個左右,涉及到的知識點主要包括:
-
克隆技巧;
-
自制積木;
-
私有變量;
-
事件廣播機制;
-
列表;
作為本次中級組省賽的第5題,難度較大,完成時間20分鐘左右,本題的難點是如何整體控制每條對角線上的克隆體。
實際上,關(guān)于類似的場景在之前的真題中也出現(xiàn)過,比如第13屆國賽的點亮LED屏幕,如圖所示:
具體詳情可以參考《LED屏幕-第13屆藍橋杯Scratch國賽真題第7題》這篇教程。
在Scratch中,類似的問題,通用的解決方案就是熟練掌握各種不同排列的克隆技巧,比如標準的矩形、三角形、金字塔、圓形、螺旋形等。具體來說,就是靈活運用“克隆4兄弟”模型,稍微復雜一點的需要結(jié)合變量和列表等數(shù)據(jù)結(jié)構(gòu)。
退一步講,在比賽的時候,如果實在無法實現(xiàn)對角線克隆,你也可以按照常規(guī)的方式完成5行5列的矩陣克隆,確保滿足題目的前3個要求,這樣可以快速拿到36分,將近一半的分數(shù),也還是蠻劃算的吧。
超平老師給你留一道思考題,如果不使用上面介紹對角線克隆技巧,能否找到同一條對角線上的克隆體呢?
你還有什么好的方法嗎,非常歡迎您和超平老師交流分享。
如果你覺得文章對你有幫助,別忘了點贊和轉(zhuǎn)發(fā),予人玫瑰,手有余香😄
需要素材和源碼的,可以移步至“超平的編程課”gzh。