Innen: Hungarian Scratch-Wiki

(Listák szócikkből átirányítva)

A lista (más programozási nyelvekben tömbnek is nevezik) több információ, érték egy helyen történő tárolására alkalmas eszköz. Úgy is meghatározható, mint egy változó, ami változókat tartalmaz. Egy lista sorszámokból (1-től a lista hosszáig) és a hozzájuk rendelt elemekből (számok vagy szövegek) áll. Az elemek a sorszámuk által hívhatók le. A lista blokkok a Változók blokk-kategóriában találhatók. A Scratch 1.3 verziójában jelentek meg először.

Lista blokkok

A listák programozására a következő blokkok használhatók:

add [valami] elemet [lista v] listához
Betesz egy elemet egy lista végére
töröld [1] elemet [lista v] listából
Töröl egy adott sorszámú elemet egy listából, 1-gyel csökkentve az utána következő elemek sorszámát
töröld [lista v] lista minden elemét
Törli egy lista összes elemét
szúrd be [valami] elemet [1] helyre [lista v] listában
Beszúr egy elemet egy adott helyre, 1-gyel növelve az utána következő elemek sorszámát
cseréld le [1] elemet [lista v] listában [valami] elemre
Lecseréli egy adott sorszámú elemét egy listának egy másik elemre.
(lista::list)
Adatközlő blokk, amely egy lista elemeit összeragasztva adja vissza
([lista v] [1] eleme)
Adatközlő blokk, amely egy lista adott sorszámú elemét adja vissza
([valami] sorszáma [lista v] listában)
Adatközlő blokk, visszaadja egy elem sorszámát egy listában, vagy nullát, ha a lista nem tartalmazza az adott elemet.
([lista v] hossza::list)
Adatközlő blokk, visszaadja egy lista elemeinek számát
<[lista v] tartalmazza [valami]?>
Igazat ad vissza, ha egy lista tartalmaz egy elemet, hamisat ha nem
[lista v] lista jelenjen meg
Megjeleníti egy lista kijelzőjét a színpadon
[lista v] lista tűnjön el
Eltűnteti egy lista kijelzőjét a színpadról

Elemek

A lista elemei: alma, körte
Jobb kattintás egy kételemű lista kijelzőjére a színpadon

Egy listához hozzáadhatók vagy törölhetők elemek kézzel vagy programozással (a fenti blokkokkal). A shift és enter egyidejű lenyomásával a kijelölt elem elé beszúródik egy új elem, csak az entert lenyomva pedig a kijelölt elem után szúródik be egy újabb.

Egy lista kijelzőjére kattintva a jobb oldali gombbal, majd az importálásra kattintva betölthető egy .txt fájlba írt lista, amelyben minden elem új sorban van. Ilyenkor a régi lista elemei felülíródnak.

Hasonlóan ki is exportálhatók a listák, kivéve, ha a lista neve a felhasználó operációs rendszere által nem támogatott. Régebbi Windowson a kérdőjelet (?), csillagot (*), szögletes zárójelet (< >), függőleges vonalat (|), kettőspontot (:), szóközt ( ) vagy bármilyen ASCII vezérlőkaraktert tartalmazó listák nem exportálhatók ki Scratchből. Ha ilyen karaktert tartalmaz a listánk, akkor az exportálás gombra történő első kattintásra nem fog történni semmi, a második kattintásra pedig bezáródik importálás/exportálás menü.[1][2]

Korlátolt listahossz

A Scratch legújabb verzióiban nincs semmilyen korlát a listák elemeinek számát illetően, azt maximális elemszámot leszámítva, ami elegendő a Scratch lefagyasztásához. A régebbi verziók online szerkesztőiben kb. 300.000 elemű lista esetén néha nem képesek menteni, mert túl sok időbe telik a feltöltés.

Scratch 3.0-ban a listák elemeinek száma 200.000-re korlátozódik.[3]

Példák a listák használatára

Random generált 100x100-as kép pixeleinek színe
Egy kép pixeleinek színe (rgb) listában tárolva

A listák többek között használhatók

  • Számításokra (pl. kettőnél több szám átlaga, több művelet végrehajtása)
  • Karakterláncok, képek (akár rajzok), hangok kódolására és dekódolására
  • Eszköztárak létrehozására játékokban
  • Adatok betöltésére és kimentésére
  • Hosszabb szövegek tárolására
  • Karakterek adatainak (pozíció, sebesség stb.) tárolására

Összetettebb alkalmazási területek

  • A felhasználó által bevitt adatok tárolása operációs rendszer szimulációkban
  • Mesterséges intelligencia adatainak tárolása játékokban
  • A felhasználó régebbi bemeneteinek újraalkotása
  • 3D-s világok adatainak tárolása
  • Kizárólag listákat használó játékok készíése

Megosztott (felhő alapú) lista

A megosztott (szerveren tárolt) lista kísérleti funkciója volt a Scratch 2.0 alpha és beta verziójának, amely a Scratch 2.0 már nem volt elérhető. A megosztott listák elemei a Scratch szerverein voltak tárolva, ez volt az egyetlen különbség köztük és az átlagos listák között. Amikor egy megosztott lista frissült, akkor az összes másolatán megtette ezt az adott projektnek. Ez hasznos például a nyilvános csúcseredmény listák készítésénél. Sok felhasználó szerette volna visszahozni ezt a funkciót, mert a megosztott listák megkönnyítenének sok dolgot számukra.[4] Több kódolással megvalósítható a listák megosztása megosztott változókba történő lekódolással és azokból történő dekódolással.[megj. 1]

Lista szerkesztő

A lista szerkesztő egy olyan funkció, amely lehetővé teszi a listák szerkesztését. Használható egyes elemek átírására egy listában, ha rájuk kattintunk, és begépeljük a kívánt új elemet. Elemeket törölni rájuk, majd a jobb oldalukon megjelenő X-re kattintva lehet. A bal alsó sarokban található + ikonnal adhatunk a listához új elemet.

Felhasználása

A lista szerkesztő használható például akkor, amikor egy projekt elvárja vagy megengedi a felhasználóinak, hogy megváltoztassanak (be lehet tölteni valamilyen felhasználók által kimentett adatot egy játékban, rajzoló programban stb.) egy listát.

Ezen kívül hasznos lehet szövegszerkesztők készítésében, mivel enélkül a

<[... v] lenyomva?>

blokkra kell hagyatkozni, ami többek között a törlés (backspace) gomb lenyomásának érzékelésére is alkalmatlan.

Korlátozások

A lista szerkesztőnek sok korlátozása van, emiatt nem használják szélesebb körben. Egyik hátránya, hogy csak a projekt szerkesztő módjában használható (Megnézem belülről), a projekt oldalán nem.

Példa projektek

  • ZENEROBOT v3 - Ez a projekt listákat használ a (random) választott hangszerek, ritmus, hangmagasságok és egyebek tárolására.

A listákat érintő kérések

Amikor megjelentek a listák, sok felhasználó 2 új blokkot áhított: a [lista v] lista tűnjön el-t és a [lista v] lista jelenjen meg-et. A nagyon nagy követelésnek eleget téve végül a Scratch 2.0-ban megjelentek a blokkok.

Néhány felhasználó kérte, hogy legyenek két- vagy többdimenziós listák.[5] A Scratch fejlesztőcsapata azonban elutasította a javaslatot, mondván, hogy túl bonyolult lenne a funkció egy programozási nyelvhez képest, amely kezdők számára jött létre.[6] Kérték emellett a megosztott listák megvalósítását is is.[4] A lehetőség meg is volt a 2.0-ás verzióban, azonban a 3.0-ban már nincsenek.

Lásd még

Megjegyzések

  1. A műveletről angol nyelven itt olvashatsz többet: en:Encoding_and_Decoding_Cloud_Data

Hivatkozások

Cookies help us deliver our services. By using our services, you agree to our use of cookies.