Unelte utilizator

Unelte site


module:06-conditii-in-programare:lectia-01

Diferențe

Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

Both sides previous revision Previous revision
Next revision
Previous revision
module:06-conditii-in-programare:lectia-01 [2014/02/21 18:36]
razvan [Bonus: Marcă sau ban]
module:06-conditii-in-programare:lectia-01 [2016/04/03 11:37] (curent)
cristiana.trifu [Dispariție obiecte]
Linia 71: Linia 71:
   * Ce trebuie apăsat pentru a porni un program în Scratch?   * Ce trebuie apăsat pentru a porni un program în Scratch?
  
-==== Tutorial ​condiții în Scratch ====+==== Folosire ​condiții în Scratch ====
  
-  * Tutorial legat de folosirea if în Scratch +Acum că ne-am amintit cum se folosește Scratch și am învățat câte ceva despre condiții, hai să vedem niște programe ​în Scratch ​care folosesc condiții, programe pe care să le îmbunătățim.
-  * Un tutorial în care se afișează un mesaj funcție de anotimp. +
-  * Un tutorial ​în care se mișcă pisica sus sau jos funcție de tasta apăsată+
-  * Continuarea tutorialului în care dacă pisica atinge un ghem miaună.+
  
 +Accesează [[http://​scratch.mit.edu/​projects/​18249826/​|proiectul Scratch de aici]], care afișează un mesaj pentru un anotimp. Anotimpul este definit în variabila ''​anotimp''​.
  
 +Ca să vezi programul din spate, folosește butonul ''​See inside''​ din partea dreapta sus. Acum poți vedea programul Scratch. Câte blocuri if sunt? Ce se întâmplă la fiecare bloc?
 +
 +Schimbă valoarea variabilei ''​anotimp''​ la valoarea ''​vara'',​ apoi la valoarea ''​toamna''​ și pornește din noul programul (apasă pe steagul verde) ca să vezi ce mesaj este afișat.
 +
 +Se vede că lipsește valoarea ''​iarna''​. Adăugă un bloc ''​if''​ pentru a verifica dacă variabila ''​anotimp''​ are valoarea ''​iarna''​. Dacă da, atunci spune (''​say''​) un cuvânt legat de iarnă (de exemplu ''​zapada''​). Apoi rulează programul.
 +
 +<note tip>
 +Ca să creezi un bloc ''​if''​ sau o instrucțiune ''​say''​ poți da click dreapta pe un bloc existent sau o instrucțiune existentă și să alegi opțiunea ''​duplicate''​.
 +</​note>​
 +
 +Foarte bine! Ai făcut un program în care pisica spune un mesaj legat de anotimp.
 +
 +==== Mișcare în Scratch ====
 +
 +Scratch este ideal pentru a mișca obiecte denumite și //​sprite//​-uri. Vrem să mișcăm sprite-ul pisică din Scratch în sus, jos, dreapta sau stânga. Pentru aceasta am creat [[http://​scratch.mit.edu/​projects/​18250454/​|programul Scratch de aici]].
 +
 +Accesează programul folosind butonul ''​See inside''​ și urmărește ce conține programul. Programul conține patru blocuri ''​if''​. Pentru fiecare tastă de tip săgeată apăsată pisica se mișcă sus, jos, dreapta sau stânga cu câte 20 de pixeli.
 +
 +Folosește steagul verde pentru a porni programul și pentru a mișca pisica.
 +
 +Vrem ca, dacă apăsăm tasta ''​space''​ pisica să miaune. Mai adăugă un nou bloc ''​if''​ în continuarea celorlalte care verifică dacă tasta apăsată (''​key pressed''​) este spațiu. Dacă este apăsat atunci adaugă acțiune ca pisica să miaune.
 +
 +<note tip>
 +Pentru mieunat, alege din tab-ul ''​Scripts''​ din meniul ''​Sounds''​ instrucțiunea ''​play sound meow''​.
 +</​note>​
 +
 +Excelent! Acum programul conține 5 blocuri ''​if''​.
 +
 +Mai adaugă un bloc ''​if''​ astfel încât, dacă se apasă tasta ''​m''​ pisica să afișeze un mesaj ''​Imi plac soarecii!''​.
 +
 +<note tip>
 +Pentru a spune un mesaj, alege din tab-ul ''​Scripts''​ din meniul ''​Looks''​ instrucțiunea ''​say hello for 2 secs''​ și schimbă mesajul din ''​hello''​ în ''​Imi plac soarecii!''​ timp de două secunde.
 +</​note>​
 +
 +Foarte bine! Ai făcut un program care conține 6 blocuri ''​if''​. Uită-te puțin peste program ca să îți clarifici ce ai făcut și cum merge.
 ==== Atingere obiecte ==== ==== Atingere obiecte ====
  
-  * Dacă pisica ​atinge un obiect atunci miaună. Dacă atinge ​alte obiect face altceva.+Vrem să continuăm programul cu pisica ​de până acumVrem ca pisică să spună ceva în momentul în care atinge ​o minge; de exemplu să spună "Am atins mingea!"​.
  
-==== Scor ====+Pentru aceasta va trebui să adaugi un sprite în formă de minge. Selectează opțiunea ''​New sprite''​ și din meniul afișat alegeți ''​Things''​ și apoi alege o minge (cum ar fi cea de baseball). Pune mingea pe planșă.
  
-  * Sunt mai multe obiecte. Pentru ​fiecare obiect la care miaună îi crește și scorul pisiciiPentru celelalte obiecte îi scade scorul.+Avem nevoie de o condiție care să spună "dacă pisica atinge mingea"​. Pentru ​aceasta, selectează sprite-ul pisică. O să ai în zona de cod o înșiruire de blocuri ''​if''​. Trebuie să mai adaugi un bloc de forma ''​if touching baseball'' ​și o acțiune de forma ''​say "Am atins migea! for 2 secs''​Caută blocurile și instrucțiunile necesare în meniul ''​Scripts''​.
  
-==== Ghicește numărul====+Dacă ai făcut bine programul, după ce va atinge pisica mingea, pisica va spune ''​Am atins mingea!''​.
  
-  * Se dă un număr aleator între 1 și 3. Utilizatorul vede dacă îl ghicește. Dacă îl ghicește apare un mesaj și îi crește scorul.+Felicitări că ai realizat încă un program! 
 +==== Dispariție obiecte ====
  
-==== Bonus: Marcă sau ban ====+Vrem să dispară mingea în momentul în care pisica o atinge. Pentru aceasta vom adăuga un program pe sprite-ul mingii.
  
-//​Idee ​de la [[https://​forrestercomputing.wikispaces.com/​Heads+or+Tails|Forrester Computing]].//+Dă click pe și vei avea zona de cod liberăVa trebui să începi un program de la zero care să detecteze când sprite-ul pisicii (''​Sprite1''​) a atins mingea și, dacă a atins, să ascunzi mingea.
  
-  * Se aruncă o monedă. Dacă pică marcă se crește scorul la marcă, dacă pică ban se crește scorul la ban.+După ce ai scris programul, testează-lVezi că într-adevăr mingea dispare.
  
 +Foarte bine! Mingea dispare când o atinge pisica.
 +
 +Dar hai să facem mai multe mingi. Vrem să avem trei mingi în scenă și vrem ca acestea să dispară când le atinge pisica. ​
 +
 +<note tip>
 +Pentru a crea cele două mingi noi poți duplica mingea existentă. Folosește click dreapta sau butonul în formă de ștampilă de sus.
 +</​note>​
 +
 +Acum pisica va atinge trei mingi care vor dispărea.
 +
 +Desigur, este frumos să afișăm mesajul ''​Am atins mingea!''​ pentru fiecare minge atinsă. Pentru aceasta va trebui să mai adaugi în programul sprite-ul Pisică încă două blocuri ''​if'',​ pentru cele două mingi noi, similar cu prima minge.
 +
 +La final vei avea un program în care o pisică se poate muta să prindă trei mingi și, dacă le prinde, acestea dispar și pisica spune ''​Am găsit mingea!''​.
 +
 +Excelent, ai făcut un program destul de complex, cu patru sprite-uri și program în fiecare sprite.
 +
 +==== Resetare poziție ====
 +
 +Vrem să putem reseta jocul din taste. Vrem ca la apăsarea tastei ''​r''​ (de la reset) să resetăm jocul în forma sa inițială: adică pisica să stea în centrul planșei, iar mingile să fie vizibile.
 +
 +Vrem să adăugăm în programele celor patru sprite-uri câte un bloc ''​if''​ care să verifice condiția de apăsare a tastei ''​r''​. Dacă a fost apăsată tasta ''​r'',​ pisica trebuie să fie plasată pe poziția inițială iar mingile să apară.
 +
 +<note tip>
 +Pentru a muta un sprite pe o poziție dată folosim instrucțiunea ''​go to x 0 u 0''​ din secțiunea ''​Motion''​ din meniul ''​Scripts''​.
 +</​note>​
 +
 +==== Bonus 1: Scor ====
 +
 +Vrem să ținem un scor al obiectelor atinse. Pentru aceasta definește o variabilă ''​scor''​ pe care o inițializezi cu zero la începutul programului și căreia îi mai adaugi valoarea ''​1''​ la fiecare atingere de minge.
 +
 +În programul fiecărui sprite de minge va trebui, în momentul în care atinge sprite-ul pisică, să adaugi 1 la valoarea variabilei ''​scor''​. Creează programul și verifică-l.
 +
 +E foarte bine până acum! Dar parcă e prea ușor. Hai să adaugăm niște sprite-uri care să îți scadă puncte. Adaugă în planșă trei sprite-uri de tip clopoțel (bell). Scrie pentru cele trei sprite-uri de tip clopoțel un program care să le ascundă atunci când sunt atinse de sprite-ul pisică și care să scadă 1 punct.
 +
 +Adică programul va face în așa fel încât vei obține puncte când atingi mingi și vei pierde puncte când atingi clopoței. După ce-l scrii verifică-l.
 +
 +Dacă totul merge bine, bravo, ai făcut un program de bonus!
 +
 +==== Bonus 2: Ghicește numărul! ====
 +
 +//Idee de la [[https://​forrestercomputing.wikispaces.com/​Guess+My+Number|Forrester High School Computing]].//​
 +
 +Scrie un program care generează un număr aleator (random) între 1 și 3. Apoi întreabă utilizatorul ce număr să introducă. Dacă răspunde corect îi crește scorul cu 1.
 +
 +<note tip>
 +Pentru a genera un număr aleator, definește o variabilă ''​numar''​ și pune-i valoarea folosind instrucțiunea ''​set numar to ...''​ din secțiunea ''​Data''​. Apoi folosește construcția ''​pick random 1 to 3''​ din secțiunea ''​Operators''​ ca să obții un număr aleator.
 +
 +Ca să ceri utilizatorului să introducă o valoare folosește instrucțiunea ''​ask ... and wait''​ din secțiunea ''​Sensing''​. Valoarea citită este scrisă în variabila ''​answer''​.
 +
 +Pentru a vedea dacă utilizatorul a ghicit folosiți un bloc ''​if''​ în care comparați variabila ''​numar''​ (conține numărul generat) cu variabila ''​answer''​ (conține numărul introdus de utilizator). ​
 +</​note>​
 +
 +<note important>​
 +Ascundeți variabila ''​numar''​. Nu trebuie să fie vizibilă utilizatorului pentru că acesta ar ști ce să răspundă.
 +</​note>​
 +
 +<note tip>
 +Ar fi frumos să afișați un mesaj de forma ''​Corect!''/''​Incorect!''​ în cazul în care utilizatorul nimerește sau nu. Pentru aceasta puteți folosi un bloc ''​if - else'',​ asă cum este descris [[http://​wiki.scratch.mit.edu/​wiki/​If_()_Then,​_Else_(block)|în această pagină]].
 +</​note>​
 +
 +==== Bonus 3: Marcă sau ban ====
 +
 +//Idee de la [[https://​forrestercomputing.wikispaces.com/​Heads+or+Tails|Forrester High School Computing]].//​
 +
 +Vrem să simulăm ce se întâmplă când aruncăm o monedă și să ținem două scor-uri: de câte ori a picat marcă și de câte ori a picat ban.
 +
 +Pentru aceasta vei defini două variabile: ''​numar_marca''​ și ''​numar_ban''​ care vor reține de câte ori a picat marcă și de câte ori a picat ban.
 +
 +Pentru a vedea dacă se obține marcă sau ban vei folosi o variabila ''​rezultat''​ care va reține o generare aleatoare între ''​0''​ și ''​1''​. Dacă este ''​0'',​ este vorba de marcă, dacă este 1 este vorba de ban. În fiecare caz se afișează un mesaj cu ce a picat și se crește cu ''​1''​ variabila.
 +
 +După ce scrii programul, testează-l să vezi dacă face ce trebuie. Dacă totul este bine, o să afișeze de câte ori a picat marcă și de câte ori a picat ban.
 +
 +Dacă ai ajuns până aici, ești super! Ai făcut toate exercițiile de bonus.
 ==== Lucru pentru acasă ==== ==== Lucru pentru acasă ====
  
-  * Un cavaler strânge săbii. ​Un dragon se mută dintr-o parte în alta. Cavalerul are trei vieți. Dacă e atins de dragon pierde viață. Dacă strânge 5 săbii câștigă o viață. Jocul se încheie când cavalerul nu mai are vieți sau când a ajuns la 10 vieți.+Pentru acasă, până data viitoare, fă un program în Scratch cu descrierea de mai jos. 
 + 
 +Un cavaler strânge săbii. ​Cavalerul pornește din partea de jos a planșei, iar săbiile sunt în partea sus, în număr de 3. În mijloc un dragon se mișcă de la stânga la dreapta și de la dreapta la stânga între cele două ziduri. 
 + 
 +Cavalerul are trei vieți. Dacă e atins de dragon pierde viață. Dacă strânge 5 săbii câștigă o viață. Jocul se încheie când cavalerul nu mai are vieți sau când a ajuns la 10 vieți. 
 + 
 +Cavalerul se mișcă folosind tastele săgeți. 
 + 
 +Pentru sabie, dragon și cavaler poți folosi ce sprite-uri dorești; nu este neapărat să aibă formă de cavaler sau un dragon. Dar ar fi frumos să cauți pe Internet niște imagini pe care să le poți folosi ca sprite-uri. 
 + 
 +Mult succes și spor la treabă!
module/06-conditii-in-programare/lectia-01.1393000572.txt.gz · Ultima modificare: 2014/02/21 18:36 de către razvan