Вы сделали все компоненты и разместили их. Но дальше возникает вопрос: "Что же делать дальше?". Чтобы ответить на этот вопрос, для начала нужно знать, что компьютеры RedPower базируются на языке программирования FORTH. Поэтому нужно научиться базовым операциям на нем.
Я попытаюсь доступным языком объяснить принцип работы с ним.
1. Введение в FORTH
Для начала попробуем сложить 2 + 2
Для начала нужно записать наши числа и только потом ставить знак требуемого действия:
Код:
2 2 +
Но нажав ввод ничего не происходит. В чем же ошибка? Ошибка в том, что мы не указали что же надо вывести. Для вывода результата требуется добавить в конце "
.".
Выглядеть запись будет так:
Код:
2 2 + .
Что мы узнали:
1. Немного о структуре FORTH
2. Вычисление в FORTH
3. "
." требуется для выведения результата
2. Более интересные вещиТеперь пора научиться выводить тексты. Разберем на простом примере: "Hi!".
Для начала нужно создать саму программу:
Код:
: test
"test" всего лишь название программы и может быть любым.
Программа создана, и мы приступаем к её написание.
Пишем сообщение для вывода:
Код:
." Hi!"
Нажимаем enter.
Само сообщение заключается в кавычки. Пробел между первой кавычкой и сообщением обязателен.
Теперь осталось завершить программу с помощью ";". Точка с запятой сообщается компьютеру о завершении программа.
Конечный результат:
Код:
: test
." Hi!"
;
Теперь при вводе названия программы, в данном случае "test", будет выводиться ваше сообщение.
Что мы узнали:
1. Как создать программу
2. Как вывести сообщение на экран
3. Как запустить программу
3. СигналыПора научиться работать с редстоун сигналами. Для этого потребуется
Декодер IO.
Для работы с сигналами используется слово
IOX. У него есть несколько разновидностей:
Код:
IOX!
IOX@
IOXSET
IOXRST
Вначале рассмотрим IOX!. Он отправит сигнал в Декодер IO, который переведет 16 битный сигнал в связку проводов.
Используется это так:
Код:
1 IOX!
Будет послан 1 сигнал в белый провод, так как его код равен 1.
Узнать какой цвет задействован можно с помощью следующей команды:
Код:
IOX@ .
Не забываем что для вывода информации требуется "
."
Что же делать, если вам нужно отредактировать 1 сигнал, при этом не задев другие? Для этого используются команды
IOXSET и
IOXRST.
IOXSET установит указанный бит в 1.
IOXRST сбросит же к 0.
Работает это так:
Код:
4 IOXSET
4 IOXRST
Будет подан сигнал на розовый провод (3-ий провод = 4) и потом снова убран.
Что мы узнали:
1. Как послать и получить редстоун сигнал через IOX
2. Более продвинутые способы управлять битами
4. ПамятьСледующее что мы будем рассматривать - переменные и константы.
Переменные - это места, где числа могут быть введены и сохранены пока не потребуются программы, могут меняться во время программы.
Константы - подобные переменным, но не могут измениться, они постоянны, как число Пи.
Переменные и константы должны быть записаны перед запуском программы.
Определить переменную или константу можно так:
Код:
0 VARIABLE var
0 CONSTANT const
Мы создаем переменную "var" и устанавливаем её на 0.
Если вам нужно модифицировать существующую переменную во время программы, то можно поступить так:
Код:
*Значение* *Имя переменной* !
Новое значение переменной указывается с помощью пометки "!"
Программы, где переменные могут быть полезны:
Код:
VARIABLE time
1 CONSTANT lump
: testvar
20 time !
lump IOXSET
time @ TICKS
lump IOXRST
;
Лампа присоединена к белому проводу, который является проводом 1, мы используем константу, чтобы сохранить число провода для использования позже в качестве постоянной "lump".
time - отрезок времени, когда лампа включена, который равен 20 тикам или 1 секунде.
Команду
IOX мы рассматривали выше, так что нового в ней ничего.
Команда
TICKS очень проста - это задержка перед следующей функцией.
Программа включает лампу и после одной секунды выключает её.
Что мы узнали:
1. Что такое переменные и константы
2. Как изменять переменные
3. Узнали о практическом применении переменных и констант
5. ЦиклыКаждый раз вводить команду не очень удобно. Поэтому научимся работать с циклами. Для этого мы используем
DO.
DO будет повторять заданное действие указанное количество раз.
Рассмотрим простой пример, в котором "test do loop" будет выведено на экран 10 раз:
Код:
: doloop
10 0 DO
." test do loop"
LOOP
;
Второе число может использоваться в цикле, как разность между первым и вторым числом.
Код:
: doloop2
10 5 DO
." test do loop 2"
LOOP
;
Нам выведет "test do loop 2" 5 раз.
Рассмотрим теперь на примере с лампами, присоединенными к соответствующим проводам:
Код:
: doloop3
5 0 DO
1 IOXSET
40 TICKS
1 IOXRST
60 TICKS
LOOP
;
На этом я заканчиваю краткий курс по FORTH.