Difference between revisions of "Qubot Script/ru"
(Новая страница: «<span id="qubot-script"></span> == Qubot Script == '''''Qubot Script''''' - это язык программирования, используемый для в...») |
m |
||
| Line 9: | Line 9: | ||
Объявление слотов происходит при первом присваивании в них значений <br> Например: | Объявление слотов происходит при первом присваивании в них значений <br> Например: | ||
| − | <syntaxhighlight lang=" | + | <syntaxhighlight lang="js">a = 7</syntaxhighlight> |
| − | объявляет слот с именем | + | объявляет слот с именем <code>a</code> и присваивает ему значение <code>7</code> |
<span id="типы-слотов"></span> | <span id="типы-слотов"></span> | ||
| Line 52: | Line 52: | ||
res = 'a less or equal 7' | res = 'a less or equal 7' | ||
}</syntaxhighlight> | }</syntaxhighlight> | ||
| − | В данном примере проверяется условие | + | В данном примере проверяется условие <code>a > 7</code> и если оно истинно, то выполняется первый блок скрипта, окрыженный фигурными скобками, иначе выполняется блок после служебного слова “else” |
<span id="цикл-while"></span> | <span id="цикл-while"></span> | ||
| Line 64: | Line 64: | ||
a = a - 1 | a = a - 1 | ||
}</syntaxhighlight> | }</syntaxhighlight> | ||
| − | В данном примере скрипт | + | В данном примере скрипт <code>a = a - 1</code> будет выполнятся до тех пор пока значение слота <code>a</code> не станет равным нулю |
<span id="итератор-for"></span> | <span id="итератор-for"></span> | ||
== Итератор '''for''' == | == Итератор '''for''' == | ||
| − | Итератор используется для перебора всех значений массива, либо ключей из | + | Итератор используется для перебора всех значений массива, либо ключей из словаря |
<syntaxhighlight lang="js">arr = [3,2,1] | <syntaxhighlight lang="js">arr = [3,2,1] | ||
| Line 118: | Line 118: | ||
Объявление строковых слотов: | Объявление строковых слотов: | ||
| − | <syntaxhighlight lang="js">str = "hello" // используя двойные | + | <syntaxhighlight lang="js">str = "hello" // используя двойные кавычки |
| − | str = 'hello' // используя одинарные | + | str = 'hello' // используя одинарные кавычки</syntaxhighlight> |
Операции со строками: | Операции со строками: | ||
Revision as of 14:08, 25 March 2022
Contents
- 1 Qubot Script
- 2 Объявление слотов (переменных)
- 3 Типы слотов
- 4 Логические операции
- 5 Арифметические операции
- 6 Условный оператор
- 7 Цикл while
- 8 Итератор for
- 9 Работа с массивами
- 10 Работа со словарем (объектом)
- 11 Работа со строками
- 12 Функции перехода
- 13 Функции работы с контентом
- 14 Отладчные функции
- 15 Округление
- 16 Случайные числа
Qubot Script
Qubot Script - это язык программирования, используемый для выполнения логических и математических операций при решении задач бота
Объявление слотов (переменных)
Объявление слотов происходит при первом присваивании в них значений
Например:
a = 7
объявляет слот с именем a и присваивает ему значение 7
Типы слотов
int = 7 // целочисленный
float = 7.3 // вещественный
str = "hello" // строковый
arr = [7, 7.3, "hello", str] // массив
dic = { n: 1, s: "Wine" } // словарь
bool = true // бинарный
Логические операции
- and - логическое ‘И’
- or - логическое ‘ИЛИ’
Например:
res = (a and b) or c
Арифметические операции
- + - сложение
- - - вычитание
- * - умножение
- / - деление
Например:
res = 2+3-4*5+(1.5-0.2/2)
Условный оператор
if (a > 7)
{
res = 'a more than 7'
}
else
{
res = 'a less or equal 7'
}
В данном примере проверяется условие a > 7 и если оно истинно, то выполняется первый блок скрипта, окрыженный фигурными скобками, иначе выполняется блок после служебного слова “else”
Цикл while
Оператор цикла проверяет условие и пока оно истинно, выполняет код окруженный фигурными скобками
a = 7
while (a > 0)
{
a = a - 1
}
В данном примере скрипт a = a - 1 будет выполнятся до тех пор пока значение слота a не станет равным нулю
Итератор for
Итератор используется для перебора всех значений массива, либо ключей из словаря
arr = [3,2,1]
for(val in arr)
{
print(val)
}
output:
3
2
1
В данном примере цикл последовательно перебирает значения массива и заносит их во временную переменную “val” соответственно для каждого элемента массива выполняется окруженный фигурными скобками скрипт “print(val)” выводящий значение в отладочное окно
Работа с массивами
Объявление массива:
arr = [1,2,3] // создает массив с тремя элементами со значениями 1,2,3
Доступ к элементам массива:
first = arr[0] // получить первый элемент массива
last = arr[-1] // получить последний элемент массива
last = arr[-2] // получить предпоследний элемент массива
arr[0] = 7 // изменить значение первого элемента
Функции работы с массивом:
len = arr.length // получить длинну массива
arr.push(4) // добавить в конец массива элемент со значением '4'
arr.unshift(0) // добавить в начало массива элемент со значением '0'
arr.pop() // удалить последний элемент массива
arr.shift() // удалить первый элемент массива
arr.slice(start,end) // возращает часть массива начиная с позиции 'start' и заканчивая если указано позицией 'end'
Работа со словарем (объектом)
Объявление словаря:
dic = { n: 1, s: "Wine" }
Доступ к значениям словаря:
a = dic.n // доступ к полю с именем "n" через точку
a = dic["n"] // доступ к полю с именем "n" через оператор доступа
dic["food"] = "milk" // добавление в словарь пары ключ-значение
Работа со строками
Объявление строковых слотов:
str = "hello" // используя двойные кавычки
str = 'hello' // используя одинарные кавычки
Операции со строками:
base = 'http://imgs/'
url = base + 'img1.png' // сложение строк
Функции перехода
step(state) - установка шага перехода по умолчанию в значение state (строка или значение слота $STATE)
goto(state) - мгновенный переход в шаг state (строка или значение слота $STATE)
Функции работы с контентом
text(obj) - вывести в текущее сообщение текст. Если obj - это сторока, то она выводится не зависимо от текущего языка. Если obj - объект, то он должен состоять из двубуквенных ключей (идентификаторов языка: en, ru,…) со строковыми значения на этих языках.
text("Hi world!")
text({ en: "Hi world!", ru: "Привет мир!", es: "¡Hola mundo!"})
images() - создать новую строку картинок. Каждый последующий вызов image будет добавляться в эту строку, пока снова не будет вызван images().
URL = "https://qudata.com/qubot/im/"
images()
image(URL + "owl_a.png")
image(URL + "owl_b.png")
image(url) - вывести в текущее сообщение картинку, находящуюся по адресу url.
URL = "https://qudata.com/qubot/im/"
image(URL + "owl_a.png")
button(obj) - вывести в текщее сообщение кнопку. Аргумент obj аналогичен действию text.
button("Hi world!")
get_check(list) - записать в слот с именем list значения кнопок типа check (1 - нажата, 0 - отжата)
set_check(list) - задать значения кнопок типа check из массива list.
CHECK = [0,1,0]
set_check(CHECK)
get_radio(list) - записать в слот с именем list значения кнопок типа radio (1 - нажата, 0 - отжата). Единица будет одна.
set_radio(list) - задать значения кнопок типа radio из массива list.
Отладчные функции
print(args) - вывод информации в окно отладки
Округление
floor(val) - округление чисел в меньшую сторону:
floor(5.8) // 5
floor(-6.1) // -7
trunc(val) - отбрасывание дробной части:
trunc(5.51) // 5
trunc(-6.99) // -6
ceil(val) - округление чисел в большую сторону:
ceil(5.15) // 6
round(val, num) - округление val до num чисел после запятой:
round(3.14159265, 2) // 3.14
Случайные числа
randint(min,max) - возвращает целое случайное число в диапазоне [min,max].
random() - возвращает случайное вещественное число в диапазоне [0,1].