《我的第一本程式設計書》第五章 將程式分離,更輕鬆地繪製大量的方塊
第五章 將程式分離,更輕鬆地繪製大量的方塊
1.引用程式,也就是函式的形式呼叫。 規則是:
點()
點() 是
儲存區[60000]->999999
點():相當於呼叫,可多次呼叫輸出“點() 是”中的內容。“點”可以任意命名 “點() 是”:可以理解成將裡面的代表打包成一個名為“點()”的東西。
2.回顧上一章繪製牆壁的程式碼
#左邊的牆壁
儲存區[2]->0
只要 儲存區[2]<20
儲存區[1]->0
只要 儲存區[1]<4
儲存區[0]->0
只要 儲存區[0]<4
儲存區[3]->儲存區[0]+(儲存區[1]*100)+(儲存區[2]*500)
儲存區[60000+儲存區[3]]->999999 #左
儲存區[60055+儲存區[3]]->999999 #右
儲存區[0]->儲存區[0]+1
儲存區[1]->儲存區[1]+1
儲存區[2]->儲存區[2]+1
#底面的牆壁
儲存區[2]->0
只要 儲存區[2]<10
儲存區[1]->0
只要 儲存區[1]<4
儲存區[0]->0
只要 儲存區[0]<4
儲存區[69505+儲存區[0]+(儲存區[1]*100)+(儲存區[2]*5)]->999999 #底
儲存區[0]->儲存區[0]+1
儲存區[1]->儲存區[1]+1
儲存區[2]->儲存區[2]+1
3.先拿底面牆壁做例子
將繪製方塊的部分打包後,就成了以下程式碼:
#將方塊提取出來的部分
儲存區[2]->0
只要 儲存區[2]<10
方塊()
儲存區[2]->儲存區[2]+1
方塊的部分
方塊() 是
儲存區[1]->0
只要 儲存區[1]<4
儲存區[0]->0
只要 儲存區[0]<4
儲存區[69505+儲存區[0]+(儲存區[1]*100)+(儲存區[2]*5)]->999999
儲存區[0]->儲存區[0]+1
儲存區[1]->儲存區[1]+1
4.左右牆壁也一樣。
如下:
#提取之後的部分
儲存區[2]->0
只要 儲存區[2]<20
方塊左()
方塊右()
儲存區[2]->儲存區[2]+1
#打包的部分,方塊左和方塊右
方塊左() 是
儲存區[1]->0
只要 儲存區[1]<4
儲存區[0]->0
只要 儲存區[0]<4
儲存區[60000+儲存區[0]+(儲存區[1]*100)+(儲存區[2]*500)]->999999
儲存區[0]->儲存區[0]+1
儲存區[1]->儲存區[1]+1
方塊右() 是
儲存區[1]->0
只要 儲存區[1]<4
儲存區[0]->0
只要 儲存區[0]<4
儲存區[60055+儲存區[0]+(儲存區[1]*100)+(儲存區[2]*500)]->999999
儲存區[0]->儲存區[0]+1
儲存區[1]->儲存區[1]+1
5.然而這還存在大量的重複程式碼,所以需要進行優化。
(依舊想吐槽一句,自己就是想不到啊!)
#左右牆壁的部分
儲存區[2]->0
只要 儲存區[2]<20
儲存區[3]->60000+(儲存區[2]*500)
方塊()
儲存區[3]->60055+(儲存區[2]*500)
方塊()
儲存區[2]->儲存區[2]+1
#底面牆壁的部分
儲存區[2]->0
只要 儲存區[2]<10
儲存區[3]->69505+(儲存區[2]*5)
方塊()
儲存區[2]->儲存區[2]+1
#整體打包的部分
方塊() 是
儲存區[1]->0
只要 儲存區[1]<4
儲存區[0]->0
只要 儲存區[0]<4
儲存區[儲存區[0]+(儲存區[1]*100)+儲存區[3]]->999999 #關鍵在這個“儲存區[3]”上
儲存區[0]->儲存區[0]+1
儲存區[1]->儲存區[1]+1
6.左牆壁、右牆壁、底面牆壁的核心程式碼:
#左牆壁
儲存區[60000+儲存區[0]+(儲存區[1]*100)+(儲存區[2]*500)]->999999
#右牆壁
儲存區[60055+儲存區[0]+(儲存區[1]*100)+(儲存區[2]*500)]->999999
#底面牆壁
儲存區[66505+儲存區[0]+(儲存區[1]*100)+(儲存區[2]*5)]->999999
將三者不同的部分提取出來,並賦予一個新的變數“儲存區[3]”就是上述的關鍵
儲存區[3]->60000+(儲存區[2]*500) #括號很重要
方塊() #左牆壁
儲存區[3]->60055+(儲存區[2]*500) #括號很重要
方塊() #右牆壁
儲存區[3]->69505+(儲存區[2]*5) #括號很重要
方塊() #底牆壁
#(程式碼不完整)
#共同的部分
方塊() 是
儲存區[1]->0
只要 儲存區[1]<4
儲存區[0]->0
只要 儲存區[0]<4
儲存區[儲存區[3]+儲存區[0]+(儲存區[1]*100)]->999999
儲存區[0]->儲存區[0]+1
儲存區[1]->儲存區[1]+1
7.通過橫軸和縱軸進行改造。
原理其實就是將畫素以橫縱5*5為一個單位,然後在螢幕上進行定位。
#呼叫
左右牆壁()
底面牆壁()
左右牆壁() 是
儲存區[2]->0
只要 儲存區[2]<20
#左邊牆壁
儲存區[3]->儲存區[2] #縱
儲存區[4]->0 #橫(因為是想下的方塊,所以橫向為0)
方塊()
#右邊牆壁
儲存區[3]->儲存區[2] #縱
儲存區[4]->11 #橫(因為有11個方塊的距離,並且固定不變,所以是個定值)
方塊()
儲存區[2]->儲存區[2]+1
底面牆壁() 是
儲存區[2]->0
只要 儲存區[2]<10
儲存區[3]->19 #縱(因為是最底層,有19個方塊,所以向下19*500)
儲存區[4]->1+儲存區[2] #橫(因為第一個方塊由縱向繪製了,所以跳過第一個方塊,所以+1)
方塊()
儲存區[2]->儲存區[2]+1
方塊() 是
儲存區[1]->0
只要 儲存區[1]<4
儲存區[0]->0
只要 儲存區[0]<4
儲存區[60000+儲存區[0]+(儲存區[1]*100)+(儲存區[3]*500)+(儲存區[4]*5)]->999999
儲存區[0]->儲存區[0]+1
儲存區[1]->儲存區[1]+1
通過兩次打包,以及橫縱(xy)軸定位。 1)首先是:
儲存區[60000+儲存區[0]+(儲存區[1]*100)+(儲存區[3]*500)+(儲存區[4]*5)]->999999
通過“儲存區[3]”和“儲存區[4]”來作為縱軸和橫軸的增量。
*500:表示縱向一個方塊的偏移量
*5:表示橫向一個方塊的偏移量
2)然後是:
#以左右牆壁為例
儲存區[3]->儲存區[2]
儲存區[4]->0
方塊()
儲存區[3]->儲存區[2]
儲存區[4]->11
方塊()
因為在“方塊()”裡確定了縱“(儲存區[3]*500)”+橫“(儲存區[4]*5)”的偏移量 所以只需要滿足“縱向”和“橫向”的條件就行。
3)最後是:
#呼叫
左右牆壁()
底面牆壁()
這要不寫,螢幕根本不出東西!
最後總結:
1.區域性程式這一功能的使用方法。
(也就是所謂的函式)
2.使用區域性程式,可以通過“引用”來多次利用同一行。
(所謂的函式呼叫)
3.使用區域性程式能讓程式碼更短,通過取名讓程式更易懂。
(也就是函式的好處。)
4.註釋和“特殊的數字”周邊可修改的更好。
(這個沒弄明白,大致理解成用數字定位橫縱座標。)
5.編寫出區域性程式後,可以另做一個小程式來確認它能否執行。
(所謂的舉一反三?)
相關文章
- 《我的第一本程式設計書》第四章 程式的變形,繪製大量的方塊程式設計
- 《我的第一本程式設計書》第一章 第二章繪製方塊程式設計
- 《我的第一本程式設計書》第八章 可以操作的程式,操作方塊程式設計
- 《我的第一本程式設計書》第六章 會動的程式,讓方塊下落程式設計
- 程式設計師的副業:我的第一本書出版啦!程式設計師
- 《我的第一本程式設計書》第三章 迴圈,讓程式變短程式設計
- 程式設計師的副業:2021年初,寫完了我的第一本書程式設計師
- IntelliJ IDEA 2023:聰明如你,程式設計更輕鬆 mac/win版IntelliJIdea程式設計Mac
- ChatGPT:讓程式開發更輕鬆ChatGPT
- 程式設計師必備的程式設計助手!SmartCoder助你輕鬆整合HMS Core程式設計師
- 《我的第一本程式設計書》第七章 為儲存區起名,更多的中文程式設計
- 輕鬆一刻:程式設計師的工作狀態程式設計師
- ArcPy自動繪製大量地圖並設定地圖要素:Python地圖Python
- Python 中一種輕鬆實現併發程式設計的方法Python程式設計
- IT程式設計師的抉擇:我要離開帝都了程式設計師
- Java程式設計師輕鬆一刻之二Java程式設計師
- 我的程式設計人生程式設計
- 我的程式設計之路程式設計
- 使用 Kitten 程式設計貓繪製一個魔方程式設計
- 用 Pinbox 輕鬆收藏程式碼,這就是我要的收藏工具
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 程式設計25年後,現實將我打回菜鳥程式設計師的起點程式設計師
- 風變程式設計,讓小白也能輕鬆學會!程式設計
- R繪圖(2): 離散/分類變數如何畫熱圖/方塊圖繪圖變數
- 隨筆 | 讀《寫給年輕程式設計師的思考書》i程式設計師
- 隨筆 | 讀《寫給年輕程式設計師的思考書》ii程式設計師
- 飛項,讓我的教務管理工作更輕鬆
- 感悟我的程式設計之路程式設計
- 我的程式設計師之路程式設計師
- 廚房用品篇:TRIZ設計讓做飯更輕鬆
- 分享好用的小紅書圖片製作軟體,輕鬆製圖
- 為什麼美國程式設計師工作比中國程式設計師工作輕鬆、加班少?程式設計師
- 我開發的開源專案,讓.NET7中的EFCore更輕鬆地使用強型別Id型別
- 直觀易用的介面設計:IBM SPSS Statistics讓資料分析更輕鬆IBMSPSS
- GitHub---程式設計師的聖地Github程式設計師
- 程式設計師你是怎麼繪製架構圖?程式設計師架構
- 開啟我的程式設計之路程式設計
- 我的程式設計職業生涯程式設計