Listele
O listă păstrează mai multe valori sub un singur nume: mesajele jocului, obiectele culese de personaj, pozițiile obiectelor dintr-un nivel.
Ai nevoie de:
- Un calculator cu acces la internet
- Editorul Scratch, pe scratch.mit.edu
1. Ce este o listă
O listă este o variabilă care păstrează mai multe valori, una după alta. Fiecare valoare se numește element și are un număr de ordine: primul element are numărul 1.
Lista se creează din categoria Variabile, cu butonul Creează o listă. Cât timp căsuța de lângă ea este bifată, lista se vede pe scenă.
2. Blocurile pentru liste
Blocurile care schimbă lista:
- „adaugă … la …”: pune o valoare la sfârșitul listei;
- „șterge … din …”: șterge elementul cu numărul dat;
- „șterge tot din …”: golește lista;
- „inserează … la … din …”: pune o valoare pe poziția dată;
- „înlocuiește item … din … cu …”: schimbă valoarea unui element.
Blocurile care citesc lista:
- „element … din …”: valoarea elementului cu numărul dat;
- „lungimea lui …”: numărul de elemente;
- „… conține …?”: adevărat dacă valoarea se află în listă.
3. Un mesaj ales la întâmplare
Lista laude păstrează mesajele pe care personajul le spune când culege un obiect. Mesajul se
alege la întâmplare, cu un număr de la 1 la lungimea listei:
când se dă click pe @greenFlag șterge tot din [laude v] adaugă [Bravo!] la [laude v] adaugă [Foarte bine!] la [laude v] adaugă [Încă unul!] la [laude v]
când primesc [obiect cules v] spune (element (alege aleator între (1) și (lungimea lui [laude v])) din [laude v]) pentru (1) secunde
Un mesaj nou se adaugă cu încă un bloc „adaugă”. Scriptul care alege mesajul rămâne neschimbat.
4. Inventarul
Lista inventar păstrează obiectele culese de personaj. O ușă se deschide numai dacă în inventar
se află cheia. Scriptul cheii:
când se dă click pe @greenFlag arată așteaptă până când <atinge [Sprite1 v]?> adaugă [cheie] la [inventar v] ascunde
Scriptul ușii:
când se dă click pe @greenFlag
arată
la infinit
dacă <atinge [Sprite1 v]?> atunci
dacă <[inventar v] conține [cheie]?> atunci
ascunde
difuzează [nivel terminat v]
altfel
spune [Ai nevoie de cheie.] pentru (1) secunde
end
end
endExerciții
🔑 Rezolvare
- după primul bloc: a;
- după al doilea: a, b;
- după al treilea: a, b, c;
- după „șterge 1”: b, c;
- după „inserează x la 2”: b, x, c;
- după „înlocuiește 1 cu y”: y, x, c.
🔑 Rezolvare
când se dă click pe @greenFlag șterge tot din [finaluri v] adaugă [Joc terminat.] la [finaluri v] adaugă [Mai încearcă o dată.] la [finaluri v] adaugă [Aproape ai reușit.] la [finaluri v]
când primesc [final v] spune (alătură (element (alege aleator între (1) și (lungimea lui [finaluri v])) din [finaluri v]) (alătură [ Scor: ] (scor))) pentru (3) secunde
🔑 Rezolvare
când încep ca și clonă mergi la x (element (i) din [mx v]) y: (element (i) din [my v]) arată așteaptă până când <atinge [Sprite1 v]?> modifică [scor v] cu (1) șterge această clonă
Pentru alt nivel se schimbă numai valorile din liste, nu și scripturile.
Ce ai învățat
La finalul fișei, poți:
- să creezi o listă și să adaugi, să ștergi și să înlocuiești elemente;
- să citești un element după numărul lui de ordine și lungimea listei;
- să alegi la întâmplare un element dintr-o listă;
- să verifici dacă o valoare se află într-o listă.