国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現(xiàn)在的位置是:首頁(yè) » scratch編程資訊

資訊內(nèi)容

Scratch第十四講:鏈表的使用

極客小將2021-03-12-
鏈表大家編程的時(shí)候用的不多,所以也不太熟悉,今天CC哥著重講一下,看看小伙伴們是否能夠通過(guò)鏈表的使用能夠讓程序做得更有效率。 鏈表:在scratch里也翻譯成列表。也是變量的一種,但是是一組變量。相當(dāng)于一個(gè)隊(duì)列。通常用在同一類的變量組。

鏈表大家編程的時(shí)候用的不多,所以也不太熟悉,今天CC哥著重講一下,看看小伙伴們是否能夠通過(guò)鏈表的使用能夠讓程序做得更有效率。

鏈表:在scratch里也翻譯成列表。也是變量的一種,但是是一組變量。相當(dāng)于一個(gè)隊(duì)列。通常用在同一類的變量組。舉個(gè)例子吧,比如今天天氣如何?晴天?陰天?多云?雷陣雨?等等,這些就可以看成一組變量,因?yàn)槎际敲枋鎏鞖獾摹T俦热缃裉焓切瞧趲祝恐芤坏街苋眨?個(gè)變量,也可以看成有關(guān)周幾的一組變量。這樣的例子很多,比如都有哪幾門功課?公園里都有哪些花?家里有哪些家具?這些都可以看成一組組的變量。

這么一解釋,是不是小伙伴頓時(shí)豁然開(kāi)朗,原來(lái)鏈表就是變量組呀,那用途是不是很廣泛呢?當(dāng)然我們也可以把變量組中的一個(gè)個(gè)變量拿出來(lái)定義成單獨(dú)的變量,但是這樣你就會(huì)發(fā)現(xiàn)有大量的重復(fù)編程的內(nèi)容。

我們今天用一個(gè)例子來(lái)講講變量的用法,首先我們先解釋一下鏈表的指令集。

upload/article/images/2021-03-12/d5ae3cd1e94f98fd8ddea42116f1f007.jpg

CC哥創(chuàng)建了一個(gè)比賽的列表。第一條指令就是在列表的后面增加一個(gè)新的變量。第二條指令就是刪除變量組的某一條變量。(選項(xiàng)里包含了末尾和全部的選項(xiàng),也就是可以直接把整個(gè)列表鏈表清空)第三條指令是插入指令。就是在某一項(xiàng)前面插入一個(gè)變量(此處也有兩個(gè)選項(xiàng),可以插在末尾,可以隨機(jī)插入某個(gè)位置)。第四條是替換掉某個(gè)變量,也就是先刪除再插入了。(選項(xiàng)里也包括了末尾和隨機(jī)兩個(gè)選項(xiàng))

upload/article/images/2021-03-12/084794d2a2bc495d1a017c46756bc8b4.jpg

這三條指令相當(dāng)于參數(shù)的指令了。第一個(gè)是直接返回了鏈表中的某一項(xiàng),第二個(gè)反饋整個(gè)鏈表有多少項(xiàng)。第三個(gè)是判斷整個(gè)鏈表中是否包含某一項(xiàng)目。

整個(gè)看起來(lái)是不是很像最基本的數(shù)據(jù)庫(kù)列表呀。

我們通過(guò)個(gè)小游戲來(lái)簡(jiǎn)單熟悉一下:我們?cè)谄聊簧袭嫵鋈齻€(gè)軌道,讓小貓們?cè)谶@個(gè)三個(gè)跑道上隨機(jī)的跑。

https://cdn.china-scratch.com/timg/180915/230H92042-2.gif

這個(gè)簡(jiǎn)單的小動(dòng)畫可以用很多方法實(shí)現(xiàn),我們今天試試鏈表怎么用:

我們首先在屏幕上畫三條賽道(就畫三根線吧),然后我們創(chuàng)建一個(gè)賽道的列表,用來(lái)表示三條賽道的Y坐標(biāo)。

upload/article/images/2021-03-12/d3cf752a20418444435979142c3eef8e.jpg

如果變量?jī)?nèi)容簡(jiǎn)單,可以直接在創(chuàng)建鏈表的時(shí)候,直接把變量初始內(nèi)容填上。點(diǎn)賽道變量表的左下角的小+號(hào)就可以添加變量。

當(dāng)然如果變量有規(guī)律的話,也可以通過(guò)在程序里初始化階段通過(guò)循環(huán)指令添加。這個(gè)大家可以自己研究。

程序分解:

1:不斷的克隆小貓。

2:把每個(gè)克隆小貓出現(xiàn)的位置放在隨機(jī)的賽道上。然后向右方跑。

第一部分的程序,很簡(jiǎn)單。

upload/article/images/2021-03-12/1beac194843db6c86d818cbd66d77090.jpg

第二段程序:

upload/article/images/2021-03-12/39ed1cce2f925b48a236d610ce89e299.jpg

左邊的部分很簡(jiǎn)單,關(guān)鍵是選擇賽道這條指令。這個(gè)是CC哥新建了個(gè)積木指令。指令里只有一條語(yǔ)句,就是設(shè)置Y坐標(biāo)為賽道變量里面任意一項(xiàng)的值。(之所以采用新建一個(gè)選擇賽道這樣的指令是想大家養(yǎng)成一個(gè)好習(xí)慣,讓編程更具可讀性,和可管理性。習(xí)慣去把一組復(fù)雜的指令打包成一個(gè)指令,以后更加方便的編程和維護(hù)。

通過(guò)這個(gè)小例子,大家是不是對(duì)鏈表有些熟悉啦。

CC哥仔細(xì)在網(wǎng)上研究了一下關(guān)于鏈表的經(jīng)典例子,其中有一個(gè)能非常好的學(xué)習(xí)鏈表的例子,就是如何取不重復(fù)的隨機(jī)數(shù)。比如在1到10中任意選取五個(gè)不重復(fù)的隨機(jī)數(shù)。

重復(fù)的隨機(jī)數(shù)大家都會(huì)選,一條指令就做到了,那不重復(fù)的隨機(jī)數(shù)呢?其實(shí)不重復(fù)的隨機(jī)數(shù)應(yīng)用很多,比如排雷的小游戲,你就不能把兩顆雷放在同一位置,還有打比賽,隨機(jī)抽取比賽隊(duì)伍時(shí),就不能一個(gè)隊(duì)伍選兩次。很多游戲里的隨機(jī)選取都是不能重復(fù)的。

當(dāng)然隨機(jī)選取不重復(fù)的方法也有很多,比如把隨機(jī)選取出來(lái)的數(shù)字與已經(jīng)選取出來(lái)的數(shù)字做一一比對(duì),如果重復(fù)再重新選取。

如果用鏈表的方法,效率就比較高:

1:從鏈表中任意選取一項(xiàng)。

2:將該項(xiàng)從鏈表中刪除。

3:重復(fù)第一步。

是不是很簡(jiǎn)單,這樣就不會(huì)有重復(fù)的選項(xiàng)了。這個(gè)小程序就留給小伙伴們自己去做了。

聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除

預(yù)約試聽(tīng)課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 定兴县| 枝江市| 东丰县| 万山特区| 汤阴县| 日喀则市| 固始县| 渑池县| 大港区| 类乌齐县| 湘潭县| 普宁市| 濮阳市| 德兴市| 米泉市| 息烽县| 余姚市| 馆陶县| 阜宁县| 宣威市| 积石山| 宝应县| 象州县| 德令哈市| 定陶县| 登封市| 东阿县| 名山县| 苗栗县| 鄂温| 鹤岗市| 津南区| 丽江市| 云霄县| 太谷县| 晋宁县| 青岛市| 锦州市| 耒阳市| 汉中市| 榆树市|