Translating, WIP
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
|
@ -1,13 +1,15 @@
|
|||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{baskervald} % Default font
|
||||
\usepackage{setspace} \onehalfspacing
|
||||
\usepackage[onehalfspacing]{setspace}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{color}
|
||||
\usepackage{textcomp}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{float}
|
||||
\usepackage{ltxcmds}
|
||||
\usepackage{fp}
|
||||
\usepackage{calc}
|
||||
|
||||
% This macro produces a "Snap!" logo.
|
||||
%
|
||||
|
@ -22,16 +24,28 @@
|
|||
}
|
||||
|
||||
\newcommand{\code}[1]{\textsf{\textbf{#1}}}
|
||||
\makeatletter
|
||||
\newcommand{\defaultGraphicsScale}{0.6}
|
||||
\makeatother
|
||||
|
||||
\renewcommand{\thechapter}{\Roman{chapter}}
|
||||
\renewcommand{\thesection}{\Alph{section}}
|
||||
\renewcommand{\thesubsection}{}
|
||||
|
||||
\makeatletter
|
||||
\newcommand{\inlinepicraised}[2]{%
|
||||
\raisebox{#2}{%
|
||||
\includegraphics[scale=\defaultGraphicsScale]{#1}%
|
||||
\edef\defaultFontSize{\f@size}
|
||||
|
||||
% A dirty hack: Apparently, this is the only way to multiply a length by a constant factor in the code below. What a mess.
|
||||
\newdimen\raiseLength
|
||||
|
||||
\newcommand{\inlinepicraised}[3]{%
|
||||
{%
|
||||
\FPeval\fontSizeRatio{\f@size / \defaultFontSize}%
|
||||
\FPeval\scale{#3 * \fontSizeRatio}%
|
||||
\raiseLength=#2%
|
||||
\raisebox{\fontSizeRatio\raiseLength}{%
|
||||
\includegraphics[scale=\scale]{#1}%
|
||||
}%
|
||||
}%
|
||||
% Add kerns if the next character is punctuation.
|
||||
\ltx@ifnextchar@nospace.{\,}{%
|
||||
|
@ -41,12 +55,12 @@
|
|||
}
|
||||
\makeatother
|
||||
|
||||
\newcommand{\inlinepic}[1]{%
|
||||
\inlinepicraised{#1}{-4pt}%
|
||||
\newcommand{\inlinepic}[2][\defaultGraphicsScale]{%
|
||||
\inlinepicraised{#2}{-4pt}{#1}%
|
||||
}
|
||||
|
||||
\newcommand{\inlinereporterpic}[1]{%
|
||||
\inlinepicraised{#1}{-1.5pt}%
|
||||
\newcommand{\inlinereporterpic}[2][\defaultGraphicsScale]{%
|
||||
\inlinepicraised{#2}{-1.5pt}{#1}%
|
||||
}
|
||||
|
||||
\newcommand{\bigpic}[1]{
|
||||
|
|
Po Szerokość: | Wysokość: | Rozmiar: 1.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 4.0 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 6.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 11 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 16 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 8.3 KiB |
|
@ -205,7 +205,25 @@ Most reporters report either a number, like \inlinereporterpic{plus}, or a text
|
|||
|
||||
\bigpic{mouse-down}
|
||||
|
||||
The special shape is a reminder that predicates don't generally make sense in an input slot of blocks that are expecting a number or text. You wouldn't say , although (as you can see from the picture) \Snap{} lets you do it if you really want. Instead, you normally use predicates in special hexagonal input slots like this one:
|
||||
The special shape is a reminder that predicates don't generally make sense in an input slot of blocks that are expecting a number or text. You wouldn't say \inlinepic{move-mouse-down-steps}, although (as you can see from the picture) \Snap{} lets you do it if you really want. Instead, you normally use predicates in special hexagonal input slots like this one:
|
||||
|
||||
\bigpic{if}
|
||||
|
||||
The C-shaped \code{if} block runs its input script if (and only if) the expression in its hexagonal input reports \code{true}.
|
||||
|
||||
\bigpic{predicates-and-conditional-evaluation-1}
|
||||
|
||||
A really useful block in animations runs its input script \emph{repeatedly} until a predicate is satisfied:
|
||||
|
||||
\bigpic{predicates-and-conditional-evaluation-2}
|
||||
|
||||
If, while working on a project, you want to omit temporarily some commands in a script, but you don't want to forget where they belong, you can say
|
||||
|
||||
\bigpic{predicates-and-conditional-evaluation-3}
|
||||
|
||||
Sometimes you want to take the same action whether some condition is true or false, but with a different input value. For this purpose you can use the \emph{reporter} \code{if} block:\footnote{\onehalfspacing If you don't see it in the Control palette, click on the File button \inlinepic{../common/btn-file} in the Tool Bar and choose ``Import tools.''}
|
||||
|
||||
\bigpic{predicates-and-conditional-evaluation-4}
|
||||
|
||||
\section{Variables}
|
||||
\subsection{Global Variables}
|
||||
|
|
Po Szerokość: | Wysokość: | Rozmiar: 2.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 7.8 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 11 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 17 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 9.9 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 5.5 KiB |
|
@ -212,6 +212,28 @@ Większość funkcji zwraca albo liczbę, jak \inlinereporterpic{plus}, lub ła
|
|||
|
||||
\bigpic{przycisk-myszy-nacisniety}
|
||||
|
||||
\begin{sloppypar}
|
||||
Specjalny kształt jest oznaką, że predykaty nie mają z~reguły sensu w~tych polach parametrów, które oczekują liczby lub tekstu. Raczej nie napisalibyśmy \inlinepic{przesun-o-przycisk-myszy-nacisniety-krokow}, choć gdybyśmy się uparli, \Snap{} by nam na to pozwolił, co widać na załączonym obrazku. W~typowych sytuacjach predykaty umieszczamy w~specjalnych sześciokątnych polach parametrów takich jak to:
|
||||
\end{sloppypar}
|
||||
|
||||
\bigpic{jezeli-to}
|
||||
|
||||
Klamra \code{jeżeli --- to} wykonuje obejmowany przez nią fragment skryptu wtedy i~tylko wtedy, gdy wyrażenie w~jej sześciokątnym polu parametru jest prawdziwe, czyli zwraca wartość \code{prawda}.
|
||||
|
||||
\bigpic{predykaty-i-obliczenia-warunkowe-1}
|
||||
|
||||
Poniższy blok jest bardzo użyteczny w~animacjach. Wykonuje on skrypt będący jego parametrem \emph{wielokrotnie}, dopóki predykat nie zostanie spełniony:
|
||||
|
||||
\bigpic{predykaty-i-obliczenia-warunkowe-2}
|
||||
|
||||
Jeśli pracując nad projektem, będziemy chcieli tymczasowo pominąć niektóre komendy w~skrypcie, lecz nie będziemy chcieli zapomnieć, gdzie było ich miejsce, możemy użyć następującej sztuczki:
|
||||
|
||||
\bigpic{predykaty-i-obliczenia-warunkowe-3}
|
||||
|
||||
Sometimes you want to take the same action whether some condition is true or false, but with a different input value. For this purpose you can use the \emph{reporter} \code{if} block:\footnote{\onehalfspacing If you don't see it in the Control palette, click on the File button \inlinepic{../common/btn-file} in the Tool Bar and choose ``Import tools.''}
|
||||
|
||||
\bigpic{predykaty-i-obliczenia-warunkowe-4}
|
||||
|
||||
\section{Variables}
|
||||
\subsection{Global Variables}
|
||||
\subsection{Script Variables}
|
||||
|
|