您現在的位置是:首頁 » scratch編程資訊
資訊內容
Scratch第三十九講:俄羅斯方塊
極客小將2021-02-18-
這個俄羅斯方塊本來CC哥想自己做,后來看到網上有一個朋友找了個例子但是看不懂,那CC哥也先不費功夫了,就把這個例子拿出來給大家講解一遍。說真心話,看別人的例子比自己寫還累。
俄羅斯方塊
這個例子還是挺復雜的,初學者確實很難看懂,CC哥也花了些時間來
這個俄羅斯方塊本來CC哥想自己做,后來看到網上有一個朋友找了個例子但是看不懂,那CC哥也先不費功夫了,就把這個例子拿出來給大家講解一遍。說真心話,看別人的例子比自己寫還累。
俄羅斯方塊
這個例子還是挺復雜的,初學者確實很難看懂,CC哥也花了些時間來。這個程序的網址如下,大家有興趣可以自己上去下載。https://scratch.mit.edu/projects/2725010/editor
閱讀別人的程序也有很多好處:1:學習別人的編程技巧,即使是scratch,但也是一門編程語言,一樣有很多技巧,所以多看別人的程序,會學到很多技巧。而且可以學到一些很多教程上沒有的方法。2:學習別人的編程思路,一個人做程序久了,就會形成自己的固定思路,碰到一個問題就會用自己最熟悉的思路去編程。多看看別人的程序,就會看到很多新的思路,開闊自己的思維。就跟你做奧數題一樣啦,不光自己做,還要看看別人的解題方法。
我們觀察一下這個程序的特點,也就是比較獨特的部分:1:首選我們看這個程序里有哪些角色,前面7個就是7個方塊了,不好理解的是detecter這個角色。剩下的角色都好理解。我們一會再去單獨談detecter這個角色。
2:就是這個方格背景了,所有的方塊都要嚴格的在這個方格背景里移動,這個看著簡單,大家學scratch這么久了,應該知道還是有點難度的,如何做到,我們一會討論。
5:就是當方塊把某一層全部鋪滿的的時候,程序怎么能檢測到呢?通過什么來檢測呢?這是一個難點,說句實話,CC哥想了多方案,發現最后都沒有設計者的構思的簡單方便。
這是CC哥在分析這個程序時所發現的一些技術點,如果我們能自己想出解決的辦法,或者能看懂編程者的方法,那么我們自己也就可以寫這個程序了。另外一些技術點就比較容易理解,CC哥就不花篇幅講了,比如玩這個俄羅斯方塊,大家都知道角色可以選擇,可以有四個方向,是不是大家第一的反應就是用角色旋轉來做?而編程者就不是用旋轉來做的,而是用造型來處理的。是不是很巧妙?所以當按旋轉按鈕的時候,程序只要選造型就好了。
程序解析
我們先從簡單的問題出發,第二個問題,編程者怎么控制這些角色沿著方格來運動的。而且在移動過程中如何檢測碰到其他方塊?
本來這個木棍方塊應該在往下走一格的,但是肯定是碰到了下面黃色方塊或橙色的T字方塊的邊上,導致沒有落下來。這就是編程者沒有精準的處理好角色的尺寸。這樣的問題在消除的時候也會出現。
然后我們看一下這幾個方塊角色的程序,基本上都一樣,CC哥只簡單講這個T方塊就好了:
1:當接收到T的消息,也就是說出來一個T方塊,那么就往下落好了,程序不復雜,在沒有碰到黑色以前(不論是其他角色和邊框)一直下落,每次一格。2:如果碰到了,就回退一步,這樣可以停留在被碰物體的上方。3:重點來了,當停穩后,圖章! 圖章命令大家學過了,就是在原地畫一個該角色。這就回答了剛才第四個問題,編程者是通過圖章命令來讓角色停留在原地的。并不是通過克隆。
這個是用上箭頭來進行方塊的旋轉,就是每按一次切換一個造型,其中在切換時一定要檢測一下是否碰到其他角色或邊框,如果碰到,就不做旋轉。
這段程序是在程序開始界面里顯示一下方塊。
這段程序是在方格的右上角提醒下一個要出現的方塊的樣子。
關于檢測和消除這部分是程序里難度最大的部分,CC哥下一課再跟大家講。
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

- 上一篇
“白手起家”的英文怎么講? 難道是start with white hand?
生活中,我們經常遇到一些耳熟能詳,甚至習以為常的詞匯,卻不知道英文中有沒有相應的地道表達。比如提到創業,我們經常會聽到“白手起家”,“一夜暴富”和“屌絲逆襲”等。今天就讓你知道他們的正確說法!
- 下一篇
10年后,最該留給孩子的,不是房子和存款,而是……
相信大家都有在餐廳吃飯或者咖啡店喝咖啡,等餐等位等到內傷的經歷。有時候為了等咖啡,耽誤了上班和送孩子,有時候在忙碌的餐館想找服務員,卻半天找不到人為你服務。 就在去年云棲大會武漢峰會上,阿里巴巴展示了它們超強的人工智能點單技術,客戶以每秒 5 個字的語速向人和機