Arhiva pentru tagul “Small Basic”

Small Basic: implementarea jocului spânzurătoarea

Aţi văzut că săptămâna aceasta am avut mai mult scheme logice şi programe în Small Basic. M-am şi explicat de ce (un curs pregătit pentru copii, de iniţiere în Small Basic). Ca “examen final” m-am gândit la implementarea unui joc clasic, şi pe lângă X şi 0, deja prezentat, am făcut rapid şi unul pentru “spânzurătoarea”. Evident, vorbind de copii, nu am apelat chiar la spânzurătoare ci am optat pentru un număr de şase vieţi, din care se tot pierde câte una când greşeşti. Puteţi vedea jocul online aici.

imagine

Din nou, programarea nu este cea mai bună, nu e perfectă, nici optimă. Am căutat să rămân cumva pe mintea “cursanţilor”. Ce a ieşit vedeţi mai jos.


Small Basic: implementarea jocului X şi 0

Aţi văzut că săptămâna aceasta am avut mai mult scheme logice şi programe în Small Basic. M-am şi explicat de ce (un curs pregătit pentru copii, de iniţiere în Small Basic). Ca “examen final” m-am gândit la implementarea unui joc clasic, iar X şi 0 e suficient de clasic, nu? Se putea face mult mai bine (ca programare) şi mult mai arătos (interfaţa), dar am vrut să rămân la un nivel jos, pentru nişte copii care au doar o săptămână de experienţă de programare. Aşa a ieşit codul de mai jos, care poate fi văzut în execuţie online aici.

imagine …


Small Basic: Câteva programe cu texte

[Explicaţie: pregătirea unui scurt curs de Small Basic pentru copii a făcut să nu mă pot concentra să scriu pentru CNet.ro. Pentru a recupera, voi publica din programele pregătite pentru respectivul curs, cu speranţa că vor folosi cuiva – chiar dacă Small Basic nu e atât de popular.] Când am vorbit anul trecut mai detaliat despre Small Basic nu am ajuns să spun nimic despre clasa Text. Evident, este o clasă importantă şi cu aplicaţii foarte multe. Vom vedea câteva programe mai mult cu scop didactic decât utile în sine.

1. Un start uşor: se dă un text şi se cere să se spună dacă conţine litera “a” sau secvenţa “er”. Desigur, în ambele cazuri folosim Text.GetIndexOf. Online aici.

TextWindow.Write("Scrieţi ceva: ")
ceva=TextWindow.Read()
ceva=Text.ConvertToLowerCase(ceva)

If (Text.GetIndexOf(ceva,"a")<>0) Then
  TextWindow.WriteLine("Apare litera 'a'.")
Else
  TextWindow.WriteLine("Nu apare litera 'a'.")
EndIf
If (Text.GetIndexOf(ceva,"er")<>0) Then
  TextWindow.WriteLine("Apare secvenţa 'er'.")
Else
  TextWindow.WriteLine("Nu apare secvenţa 'er'.")
EndIf


Small Basic: Câteva programe cu broscuţa

[Explicaţie: pregătirea unui scurt curs de Small Basic pentru copii a făcut să nu mă pot concentra să scriu pentru CNet.ro. Pentru a recupera, voi publica din programele pregătite pentru respectivul curs, cu speranţa că vor folosi cuiva – chiar dacă Small Basic nu e atât de popular.] Despre desenarea cu broasca ţestoasă am scris aici anul trecut. Acum doresc să revin cu alte câteva programe, simpluţe şi în acelaşi timp simpatice, adică bune pentru copiii care vor să înveţe cum să o conducă.

imagine

1. Să se scrie 82 în stilul indicatoarelor electronice (ca în captura de mai sus). Online aici.

GraphicsWindow.Width=300
GraphicsWindow.Height=270
GraphicsWindow.PenWidth=5
Turtle.Speed=9

' Acum scriu 8
Turtle.X=20
Turtle.Y=10
Turtle.TurnRight()
Turtle.Move(100)
Turtle.X=130
Turtle.Y=20
Turtle.TurnRight()
Turtle.Move(100)
Turtle.X=130
Turtle.Y=140
Turtle.Move(100)
Turtle.X=120
Turtle.Y=250
Turtle.TurnRight()
Turtle.Move(100)
Turtle.X=10
Turtle.Y=240
Turtle.TurnRight()
Turtle.Move(100)
Turtle.Y=120
Turtle.Move(100)
Turtle.X=20
Turtle.Y=130
Turtle.TurnRight()
Turtle.Move(100)

' Acum scriu 2
Turtle.X=170
Turtle.Y=10
Turtle.Move(100)
Turtle.X=280
Turtle.Y=20
Turtle.TurnRight()
Turtle.Move(100)
Turtle.X=270
Turtle.Y=130
Turtle.TurnRight()
Turtle.Move(100)
Turtle.X=160
Turtle.Y=140
Turtle.TurnLeft()
Turtle.Move(100)
Turtle.X=170
Turtle.Y=250
Turtle.TurnLeft()
Turtle.Move(100)

2. Să se deseneze o serie de …


Small Basic: Câteva programe cu şiruri

[Explicaţie: pregătirea unui scurt curs de Small Basic pentru copii a făcut să nu mă pot concentra să scriu pentru CNet.ro. Pentru a recupera, voi publica din programele pregătite pentru respectivul curs, cu speranţa că vor folosi cuiva – chiar dacă Small Basic nu e atât de popular.] Acum vedem programe cu şiruri. Vă amintesc că anul trecut am scris mai multe articole introductive pentru Small Basic, aici vorbind despre şiruri, iar aici am văzut câteva exemple (şirul lui Fibonacci, maximul dintr-un şir şi sortarea unui şir). Să vedem acum alte programe-exemple.

1. Să se creeze un şir nou inversând un alt şir de numere aleatoare. Online aici.

n=20
For i=1 To n
sir[i]=Math.GetRandomNumber(100)
EndFor

For i=1 To n
sirnou[i]=sir[n-i+1]
EndFor

k=1
For i=n To 1 Step -1
sirnou[k]=sir[i]
k=k+1
EndFor

TextWindow.WriteLine("Primul sir:")
For i=1 To n
TextWindow.Write(sir[i]+" ")
EndFor
TextWindow.WriteLine("")
TextWindow.WriteLine("Al doilea sir:")
For i=1 To n
TextWindow.Write(sirnou[i]+" ...


Small Basic: Câteva programe medii

[Explicaţie: pregătirea unui scurt curs de Small Basic pentru copii a făcut să nu mă pot concentra să scriu pentru CNet.ro. Pentru a recupera, voi publica din programele pregătite pentru respectivul curs, cu speranţa că vor folosi cuiva – chiar dacă Small Basic nu e atât de popular.] Mergem mai departe cu nişte programe simple spre medii. Desigur, totul e relativ la nivelul Dvs de cunoştinţe despre Small Basic. E un limbaj pentru copii şi începători: dacă nu ştiţi programare urmaţi tagul Small Basic şi poate veţi învăţa!

1. Se dă un număr. Să se inverseze verificându-se dacă e palindrom (numerele palindrome sunt egale cu “inversul” lor – exemple: 121, 4554, 9834389…). De asemenea să se afle cifra maximă. Online aici.

TextWindow.Write("Scrieţi un număr: ")
n=TextWindow.ReadNumber()
nrest=n
ninvers=0
max=0
While (nrest>0)
cifra=Math.Remainder(nrest,10)
If cifra>max Then
max=cifra
EndIf
nrest=Math.Floor(nrest/10)
ninvers=ninvers*10+cifra
EndWhile
TextWindow.WriteLine("Numărul inversul este: ...


Small Basic: Câteva programe simple

[Explicaţie: pregătirea unui scurt curs de Small Basic pentru copii a făcut să nu mă pot concentra să scriu pentru CNet.ro. Pentru a recupera, voi publica din programele pregătite pentru respectivul curs, cu speranţa că vor folosi cuiva – chiar dacă Small Basic nu e atât de popular.] Vom vedea în continuare câteva programe banale, bune pentru începători, adică pentru cei care acum “buchisesc” Small Basic. Vă amintesc că Small Basic e un limbaj de programare gândit special pentru copii şi începători.

1. În funcţie de ora din zi să se salute cu "Bună dimineaţa!", "Bună ziua!" sau "Bună seara!" Online aici.

ora=Clock.Hour
If (ora<10) Then
  TextWindow.WriteLine("Bună dimineaţa!")
Else
  If (ora<18) Then
    TextWindow.WriteLine("Bună ziua!")
  Else
    TextWindow.WriteLine("Bună seara!")
  EndIf
EndIf

2. Se introduc mai multe numere, încheierea introducerii fiind semnalată cu zero. Calculaţi media lor aritmetică. Online …


Small Basic: Shapes

În Small Basic găsim şi o clasă Shapes (Forme) ce permite lucruri interesante. Amintesc a câta oară că Small Basic este destinat începătorilor şi/sau copiilor. Cei mici vor fi încântaţi de primele lor animaţii, chiar dacă ele includ nişte forme simple. Dar despre ce forme vorbim? Cu AddRectangle, AddEllipse, AddTriangle şi AddLine putem adăuga dreptunghiuri (cu laturile egale şi atunci e pătrat), elipse (lăţime şi înălţime egală şi atunci e cerc), triunghi şi respectiv linii. Mai avem şi AddImage (yep, animaţii cu imagini) sau AddText dacă vrem să animăm texte. Fiecare dintre acestea returnează forma pe care trebuie să o salvăm într-o variabilă pentru ca mai apoi să aplicăm diverse acţiuni. Astfel, definim un pătrat scriind patrat=Shapes.AddRectangle(100,100).

imagine

Dacă vrem …


Small Basic: Importare şi exportare

Cred că doar în trecere am vorbit despre facilităţile de import şi export puse la dispoziţie de Small Basic (parcă începând cu versiunea 1.0). Observaţi butoanele unul peste altul: Import, respectiv Publish. Să o luăm cu importul. Microsoft a lansat cândva o invitaţie: scrieţi programe trăznet dar în sub 25 de linii de cod. Ce a ieşit se găseşte aici. Cine doreşte să vadă un cod al vreunui program de acolo nu trebuie decât să observe codul lui, să îl copieze şi să plaseze apoi în fereastra ce apare la click pe Import.

imagine

În captura de mai sus vedeţi importarea pentru un program ce rezolvă grile Sudoku. Nu în maniera optimă, dar oricum… sub 25 de linii de cod …


Small Basic: Cu broasca la desenat

Reluăm după o pauză cam lungă introducerea în Small Basic. Urmaţi tagul Small Basic pentru a regăsi tot ce am scris acum vreo două luni. Şi ne apropiem de grafică cu o oprire la broasca ţestoasă ce lase urme după ea. Yep. Să ne amintim că Small Basic este un limbaj de programare gândit pentru începători… iar unii dintre începători sunt copii. Şi lor o să le placă să plimbe broasca pe ecran, desenând. Clasa Turtle are o serie de funcţii ce se cam explică singure.

Proprietăţi

  • Angle: întoarce broasca cu unghiul indicat
  • Speed: stabileşte viteza de deplasare a broaştei
  • X: o mută pe orizontală la n pixeli de marginea stângă a ferestrei
  • Y: o mută pe verticală la n pixeli de marginea de sus a ferestrei

Metode: