Translating section I.C of the manual - WIP
|  | @ -33,6 +33,12 @@ | |||
| 	}% | ||||
| } | ||||
| 
 | ||||
| \newcommand{\inlinereporterpic}[1]{% | ||||
| 	\raisebox{-1.5pt}{% | ||||
| 		\includegraphics[scale=\defaultGraphicsScale]{#1}% | ||||
| 	}% | ||||
| } | ||||
| 
 | ||||
| \newcommand{\bigpic}[1]{ | ||||
| 	\begin{figure}[H] | ||||
| 	\centering | ||||
|  |  | |||
| Po Szerokość: | Wysokość: | Rozmiar: 9.4 KiB | 
| Po Szerokość: | Wysokość: | Rozmiar: 8.2 KiB | 
| Po Szerokość: | Wysokość: | Rozmiar: 13 KiB | 
|  | @ -169,6 +169,35 @@ In this illustration, it is desired to animate Alonzo's arm. (The arm has been c | |||
| \end{figure} | ||||
| 
 | ||||
| \section{Reporter Blocks and Expressions} | ||||
| 
 | ||||
| So far, we've used two kinds of blocks: hat blocks and command blocks. Another kind is the \emph{reporter} block, which has an oval shape: \inlinereporterpic{x-position}. It's called a ``reporter'' because when it's run, instead of carrying out an action, it reports a value that can be used as an input to another block. If you drag a reporter into the scripting area by itself and click on it, the value it reports will appear in a speech balloon next to the block: | ||||
| 
 | ||||
| \bigpic{x-position-returns-a-number} | ||||
| 
 | ||||
| When you drag a reporter block over another block's input slot, a white ``halo'' appears around that input slot, analogous to the white line that appears when snapping command blocks together. Here's a simple script that uses a reporter block: | ||||
| 
 | ||||
| \begin{figure}[H] | ||||
| \begin{minipage}{0.4\textwidth} | ||||
| \includegraphics[scale=\defaultGraphicsScale]{example-script-that-uses-a-reporter} | ||||
| \end{minipage}% | ||||
| \begin{minipage}{0.6\textwidth} | ||||
| \includegraphics{../common/turtle-says-its-position} | ||||
| \end{minipage} | ||||
| \end{figure} | ||||
| 
 | ||||
| Here the \code{x position} reporter provides the first input to the \code{say} block. (The sprite's X position is its horizontal position, how far left (negative values) or right (positive values) it is compared to the center of the stage. Similarly, the Y position is measured vertically, in steps above (positive) or below (negative) the center.) | ||||
| 
 | ||||
| You can do arithmetic using reporters in the Operators palette:  | ||||
| 
 | ||||
| \begin{figure}[H] | ||||
| \begin{minipage}{0.6\textwidth} | ||||
| \includegraphics[scale=\defaultGraphicsScale]{using-reporters-for-arithmetic} | ||||
| \end{minipage}% | ||||
| \begin{minipage}{0.4\textwidth} | ||||
| \includegraphics{../common/turtle-says-its-rounded-position} | ||||
| \end{minipage} | ||||
| \end{figure} | ||||
| 
 | ||||
| \section{Predicates and Conditional Evaluation} | ||||
| \section{Variables} | ||||
| \subsection{Global Variables} | ||||
|  |  | |||
| Po Szerokość: | Wysokość: | Rozmiar: 16 KiB | 
| Po Szerokość: | Wysokość: | Rozmiar: 9.1 KiB | 
| Po Szerokość: | Wysokość: | Rozmiar: 1.7 KiB | 
| Po Szerokość: | Wysokość: | Rozmiar: 3.4 KiB | 
| Po Szerokość: | Wysokość: | Rozmiar: 1.7 KiB | 
| Po Szerokość: | Wysokość: | Rozmiar: 14 KiB | 
|  | @ -76,7 +76,7 @@ Na górze skryptu znajduje się \emph{blok-czapka}, który określa, kiedy skryp | |||
| 
 | ||||
| Pozostałe bloki w naszym skrypcie to \emph{bloki komend}. Każdy z~nich oznacza jakąś akcję, którą \Snap{} potrafi wykonać. Na przykład blok \inlinepic{przesun-o-10-krokow} nakazuje duszkowi\footnote{W grafice komputerowej słowem ,,duszek'' (ang. \textit{sprite}) nazywa się ruchomy obiekt na ekranie --- przyp. tłum.}, czyli strzałce na \emph{scenie} po prawej stronie okna, aby przesunął się o~dziesięć kroków do przodu w~kierunku, w~którym jest zwrócony. Każdy krok to niewielka odległość na ekranie. Wkrótce przekonamy się, że na scenie może być więcej duszków, a~każdy z nich może mieć własne skrypty. Ponadto duszki nie muszą wyglądać jak strzałki; ich kostiumy mogą być dowolnymi obrazkami. Kształt bloku \code{przesuń} ma za zadanie przypominać klocek, skrypt zaś jest jak wieża z klocków. Słowa ,,blok'' będziemy używać dla oznaczenia zarówno graficznego symbolu na ekranie, jak i~procedury (akcji) jaką ten blok wykonuje. | ||||
| 
 | ||||
| Liczbę 10 w powyższym bloku \code{przesuń} nazywamy jego \emph{parametrem}. Kliknąwszy na białym, zaokrąglonym polu, możemy wpisać w~jej miejsce dowolną inną. W przykładowym skrypcie ze strony \pageref{fig:typowy-skrypt} parametrem jest liczba 100. Jak się później okaże, pola parametrów mogą mieć kształty inne od zaokrąglonych; oznacza to wtedy, że akceptują one wartości inne niż liczby. Zobaczymy również, że zamiast wpisywać konkretne wartości w~pola, możemy nakazać komputerowi je obliczać. Ponadto blok może mieć więcej niż jeden parametr. Na przykład blok \code{leć}, znajdujący się mniej więcej w~połowie palety ,,Ruch'', przyjmuje trzy parametry. | ||||
| Liczbę 10 w powyższym bloku \code{przesuń} nazywamy jego \emph{parametrem}. Kliknąwszy na białym, owalnym polu, możemy wpisać w~jej miejsce dowolną inną. W przykładowym skrypcie ze strony \pageref{fig:typowy-skrypt} parametrem jest liczba 100. Jak się później okaże, pola parametrów mogą mieć kształty inne od owalnych; oznacza to wtedy, że akceptują one wartości inne niż liczby. Zobaczymy również, że zamiast wpisywać konkretne wartości w~pola, możemy nakazać komputerowi je obliczać. Ponadto blok może mieć więcej niż jeden parametr. Na przykład blok \code{leć}, znajdujący się mniej więcej w~połowie palety ,,Ruch'', przyjmuje trzy parametry. | ||||
| 
 | ||||
| Większość bloków komend ma kształt klocków, lecz niektóre, jak \code{powtórz} z~tego samego przykładu, wyglądają jak \emph{klamry}. Większość bloków klamrowych można znaleźć na palecie ,,Kontrola'. Wnętrze klamry jest szczególnym rodzajem pola parametru, który przyjmuje \emph{skrypt} jako parametr. W~przykładowym skrypcie blok \code{powtórz} ma dwa parametry: liczbę 4 oraz skrypt | ||||
| 
 | ||||
|  | @ -152,7 +152,7 @@ Widzieliśmy wcześniej przykład dwóch duszków poruszających się jednocześ | |||
| 
 | ||||
| Słowo ,,szczekaj'' występujące w~bloku \inlinepic{nadaj-szczekaj-do-wszystkich-i-czekaj} to pierwszy lepszy wyraz, który przyszedł mi do głowy. Jedną z~opcji, które ukazują się po kliknięciu strzałki w~dół obok tego pola parametru (i~jedyną początkowo dostępną), jest ,,\code{nowy}''. Po jej wybraniu \Snap{} pyta o~nazwę komunikatu. Kiedy wspomniany blok zostanie wykonany, wybrany komunikat zostaje wysłany do \emph{każdego} duszka --- stąd też określenie ,,nadaj do wszystkich''. Jednak w~naszym przykładzie tylko jeden duszek ma skrypt, który jest wywoływany w~momencie nadania tego komunikatu --- jest nim pies. Ponieważ skrypt chłopca wykorzystuje blok \code{nadaj do wszystkich i~czekaj} zamiast \code{nadaj do wszystkich}, chłopiec nie przechodzi do następującego po nim bloku \code{powiedz}, dopóki skrypt psa się nie skończy. Z~tej przyczyny dwa duszki mówią na zmianę, a~nie jednocześnie. | ||||
| 
 | ||||
| Warto przy okazji zwrócić uwagę na to, że pierwsze pole parametru na bloku \code{powiedz} nie jest zaokrąglone, lecz prostokątne. Oznacza to, że parametr ten może być dowolnym łańcuchem znaków (tekstem), nie tylko liczbą. W~polach parametrów typu tekstowego spacje ukazują się jako brązowe kropki, abyśmy mogli policzyć liczbę odstępów między wyrazami. Co ważniejsze, możemy dzięki temu odróżnić pusty łańcuch od złożonego z~samych spacji. Brązowe kropki \emph{nie będą} widoczne na scenie, kiedy blok zostanie wykonany. | ||||
| Warto przy okazji zwrócić uwagę na to, że pierwsze pole parametru na bloku \code{powiedz} nie jest owalne, lecz prostokątne. Oznacza to, że parametr ten może być dowolnym łańcuchem znaków (tekstem), nie tylko liczbą. W~polach parametrów typu tekstowego spacje ukazują się jako brązowe kropki, abyśmy mogli policzyć liczbę odstępów między wyrazami. Co ważniejsze, możemy dzięki temu odróżnić pusty łańcuch od złożonego z~samych spacji. Brązowe kropki \emph{nie będą} widoczne na scenie, kiedy blok zostanie wykonany. | ||||
| 
 | ||||
| Scena ma swój własny obszar skryptów. Możemy wyświetlić jej szczegóły klikając ikonę ,,Scena'' po lewej stronie zagrody duszków. W~przeciwieństwie do duszków scena się nie porusza. Zamiast kostiumów ma \emph{tła} --- obrazki wypełniające cały obszar sceny. Duszki rysowane są na aktualnym tle. W~skomplikowanych projektach często wygodnie jest użyć skryptu sceny do koordynacji działań poszczególnych części programu. | ||||
| 
 | ||||
|  | @ -176,7 +176,27 @@ W~tym przypadku chcielibyśmy animować rękę Alonza. (Ręka została pokolorow | |||
| \end{minipage} | ||||
| \end{figure} | ||||
| 
 | ||||
| \section{Reporter Blocks and Expressions} | ||||
| \section{Bloki funkcji i wyrażenia} | ||||
| 
 | ||||
| Jak dotąd używaliśmy dwóch rodzajów bloków: ,,czapek'' i~komend. Kolejnym rodzajem jest blok \emph{funkcji}, który ma owalny kształt: \inlinereporterpic{pozycja-x}. Nazywamy go ,,blokiem funkcji'', ponieważ --- podobnie jak funkcja w~matematyce --- kiedy zostaje wykonany, zamiast przeprowadzać jakąś czynność, zwraca wartość, która może zostać użyta jako parametr w~innym bloku. Jeśli przeciągniemy sam blok funkcji do obszaru skryptów i~klikniemy go, obok pokaże się dymek z~wartością zwróconą przez tę funkcję: | ||||
| 
 | ||||
| \bigpic{pozycja-x-zwraca-liczbe} | ||||
| 
 | ||||
| Kiedy przeciągamy blok funkcji nad polem parametru należącym do innego bloku, wokół tego pola pojawia się biała otoczka, analogicznie do sytuacji, w~której łączymy bloki komend i~pojawia się biała linia. Oto przykładowy skrypt wykorzystujący funkcję: | ||||
| 
 | ||||
| \begin{figure}[H] | ||||
| \begin{minipage}{0.4\textwidth} | ||||
| \includegraphics[scale=\defaultGraphicsScale]{przykladowy-skrypt-wykorzystujacy-funkcje} | ||||
| \end{minipage}% | ||||
| \begin{minipage}{0.6\textwidth} | ||||
| \includegraphics{../common/turtle-says-its-position} | ||||
| \end{minipage} | ||||
| \end{figure} | ||||
| 
 | ||||
| Funkcja \code{pozycja X} nadaje tu wartość pierwszemu parametrowi bloku \code{powiedz}. Pozycja X~duszka to inaczej jego współrzędna pozioma. Określa ona, jak daleko w~lewo (jeśli jest liczbą ujemną) lub w~prawo (jeśli dodatnią) znajduje się duszek w~stosunku do środka sceny. Analogicznie, pozycja Y~to współrzędna pionowa, mierzona ilością kroków w~górę (wartości dodatnie) lub w~dół od środka (wartości ujemne). | ||||
| 
 | ||||
| Przy pomocy funkcji z palety ,,Wyrażenia'' możemy wykonywać obliczenia: | ||||
| 
 | ||||
| \section{Predicates and Conditional Evaluation} | ||||
| \section{Variables} | ||||
| \subsection{Global Variables} | ||||
|  |  | |||
 Bartosz Leper
						Bartosz Leper