Microsoft Small Basic: zábava pro skutečné geeky

Céčko, Java, C#, Python? Ale prosím vás, toto jsou jazyky pro studenty středních škol. Dnes je v módě Small Basic od Microsoftu, který toho sice moc neumí, je s ním ale zábava.

Před dvěma lety na podzim se Microsoft světu pochlubil s programovacím jazykem a zároveň vývojovým prostředím Microsoft Small Basic. Jedná se o jednoduché (ale kupodivu použitelné) vývojové prostředí pro školou povinné a naprosté začátečníky. Stejně tak ale se Small Basicem snadno zabijete polední nudu.

Škola hrou

Small Basic je ve své podstatě dalším v dlouhé řadě studijních jazyků, jehož účelem je naučit mládež základní principy programování a tvorby algorimtů – stejně jako třeba výukový jazyk Karel, Logo a ve své podstatě i Pascal.

prostredi basic pascal.png
Prostředí Microsoft Small Basic s doplňováním kódu a interaktivní referenční nápovědou v pravém panelu

Databanka hotových skriptů od komunity

Small Basic je ve své podstatě pouze skript – přímo ve vývojovém prostředí si jej můžete spustit, podívat se, co umí a zase ho ukončit. Se svým výtvorem se ale můžete pochlubit i světu, hotový kód totiž můžete publikovat na webu Microsoftu, kde se bude interpretovat (a vykreslovat) pomocí Silverlightu. Každý takový zveřejněný „program“ má vlastní speciální identifikátor. Ten se vám bude hodit, libovolný kód si totiž pomocí tohoto identifikátoru můžete stáhnout do editoru a třeba vylepšit, případně pochopit algoritmus hry Tetris a dalších komplexních her.

Nakonec nesmím zapomenout ještě na jednu věc – Small Basic je rozšiřitelný o jednoduché knihovny. Ty mohou výrazně zvýšit funkčnost celého jazyka a několik jich budete mít k dispozici už po instalaci. Díky knihovně pro práci s fotobankou Flickr tak třeba na dvou řádcích napíšete skript, který stáhne náhodnou fotografii Prahy a nastaví ji jako tapetu Windows:

obrazek = Flickr.GetRandomPicture("Praha")
Desktop.SetWallPaper(obrazek)

Tento skript nevytvoří žádné okno, můžete ho ale samozřejmě rozšířit třeba o textový vstup, kde určíte, jaký obrázek se má stáhnout namísto Prahy. Jedná se o očební jazyk, komponenta Flickru tedy stáhne pouze jeho nejmenší rozlišení.

A ještě jedna drobnost. Několik ukázkových „programů“ najdete v adresáři C:\Program Files\Microsoft\Small Basic\Samples, respektive C:\Program Files (x86)\Microsoft\Small Basic\Samples na 64-bitových Windows.

silverlight.png
Každý skript, který publikujete v katalogu, bude dostupný v silverlightovém
přehrávači – tady si třeba můžete vyzkoušet základy kolizní fyziky

Zábava pro geeky

Small Basic od Microsoftu je především hra a zábava pro znuděné geeky, které už nebaví večerní hra Diabla (mě ano), na druhou stranu lze schopností Small Basicu využít i pro nějaké to domácí užitečnější skriptování. Editor se spouští velmi rychle, má automatické doplňování kódu (lehce obarvený tradiční IntelliSense ze světa Visual Studia) a také knihovnu Math. Můžete si s ním tedy rychle spočítat matematickou úlohu a napsat i grafický plotr, který vykreslí i nějaký ten graf. Já pro jednoduché výpočty vždy používal PHP nebo Javascript, podobnou práci ale v podstatě zastane i Small Basic. V tomto směru má vlastně jenom jedno vážné mínus – absenci čtení a zápisu do souboru.

A teď už několik ukázek kódu.

Hrajeme si se Small Basicem


Každou minutu stáhne z Flickru fotku a nastaví tapetu

Rozšířený program nestáhne pouze jednu fotografii Prahy, ale bude ji naopak ze serveru Flickru stahovat každou minutu. Poté ji nastaví jako tapetu Windows. Jedná se o elementární nekonečnou smyčku s absolutně žádným nastavením, o to tu ale nejde. Jde tu o to, aby nebohé děcko pochopilo účel a funkci smyček a to nejlépe v kontextu moderní doby a mashupů – aplikací, které mixují data z různých zdrojů.

While ("True")
  obrazek = Flickr.GetRandomPicture("Praha")
  Desktop.SetWallPaper(obrazek)
  Program.Delay(60 * 1000)
EndWhile

Sinusoida

Předchozí program nemá vlastní okno, to se ale vytvoří velmi snadno. Na výběr máte textové okno (formát příkazové řádky) a okno grafické, do kterého můžete zvesela čmárat pixely. Ve spojení s elementární funkcí pro vypočet funkce sinus vykreslíte sinusoidu.

GraphicsWindow.BackgroundColor = "Black"
GraphicsWindow.Title = "Můj skvělý program"
GraphicsWindow.Width = 850
GraphicsWindow.Height = 500

For x = 0 To 900 Step 10
  y = 200+Math.Sin(x/100)*200
  GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  GraphicsWindow.FillEllipse(x, y, 10, 10)
EndFor

sinusoida.png
Jak se stát mladým matematikem za deset sekund...

Želvák malíř

Tvorbu grafiky ale můžete i animovat. K tomu poslouží želva. Jedná se o objekt, který se chová jako hlava plotru. Můžete ji posunout na libovolné místo na plátně (tedy na okně) a želva vykreslí stopu. Proč je to želva? Jde tu o dějepis, kreslíci želvu totiž obsahoval stařičký jazyk Logo z konce šedesátých let minulého století, který pak insiproval hromadu dalších výukových programovacích jazyků včetně Small Basicu.

V našem případě můžete želvu přinutit, aby nakreslila třeba stromeček. Je to poměrně snadné, jedná se totiž o fraktál, tedy neustále se opakující algorimtus ve smyčce.

GraphicsWindow.BackgroundColor = "Black"
GraphicsWindow.PenColor = "LightGreen"

uhel = 30
delta = 10
vzdalenost = 60
Turtle.Speed = 9

KresliStrom()

Sub KresliStrom
  If (vzdalenost > 0) Then
    Turtle.Move(vzdalenost)
    Turtle.Turn(uhel)
    Stack.PushValue("vzdalenost", vzdalenost)
    vzdalenost = vzdalenost - delta
    KresliStrom()
    Turtle.Turn(-uhel * 2)
    KresliStrom()
    Turtle.Turn(uhel)
    vzdalenost = Stack.PopValue("vzdalenost")
    Turtle.Move(-vzdalenost) 
  EndIf
EndSub

Jak takový program vypadá v praxi? Podívejte se na krátké video kresby fraktálového stromu.  Chcete jiný úhel, rychlost, velikost větví a barvu? Zkopírujte kód z oficiální příručky do editoru SB a spusťte si vlastní verzi.

 

Vlastní Photoshop

Pomocí Small Basicu samozřejmě můžete pracovat i s myší a kreslit po plátně. Kód sice nenabízí žádné ovládací prvky, tento program byste ale mohli snadno rozšířit třeba tak, že si ovládací prvky sami nakreslíte, a doprogramujete logiku, která po klepnutí někde nahoře (na nakreslený ovládací prvek – známe pixelovou polohu ukazatele myši) třeba změní barvu a tloušťku pera. Pro začátečníky k nezaplacení.

GraphicsWindow.BackgroundColor = "Black"
GraphicsWindow.PenColor = "White"
GraphicsWindow.MouseDown = OnMouseDown
GraphicsWindow.MouseMove = OnMouseMove

Sub OnMouseDown
  prevX = GraphicsWindow.MouseX
  prevY = GraphicsWindow.MouseY
EndSub

Sub OnMouseMove
  x = GraphicsWindow.MouseX
  y = GraphicsWindow.MouseY
  If (Mouse.IsLeftButtonDown) then
    GraphicsWindow.DrawLine(prevX, prevY, x, y)
  EndIf
  prevX = x
  prevY = y
EndSub

photoshop.png
Několik málo řádků kódu a máte vlastní kreslítko

S pomocí Small Basicu můžete dále zachytávat kliky myši, klávesnicový vstup, můžete vykreslit zcela vlastní uživatelské rozhraní jako třeba ve hře Tetris, takže si mladý programátor osvojí docela širokou škálu znalostí. Především je to ale celé hra a experimentování s pixely a barvičkami. Pokud by se vám ale přeci jen podařilo něco napsat, můžete kód exportovat do velkého Visual Basicu a pokračovat v něm dál.

A to je všechno. Small Basic 0.95 od Microsoftu je už lokalizovaný do češtiny a běží nad .NET Frameworkem, k chodu pak budete potřebovat alespoň verzi 3.5. Pro majitele Windows 7 to překážka nebude, ti ostatní budou muset navštívit Microsoft Update.

Napište skript a podělte se

Napsali jste nějaký pěkný skript ve Small Basicu? Nasdílejte ho na web smallbasic.com a pochlubte se v diskuzi pod článkem odkazem na silverlightový „emulátor“, nebo napište alespoň identifikátor vaší aplikace.

Důležité odkazy:

stáhnout program Microsoft Small Basic 0.95 Licence: freeware, 5,7 MB
Autor: Microsoft
Web programu: smallbasic.com


Diskuze (81) Další článek: Nová kniha: 333 tipů a triků pro GIMP

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,