Войти или зарегистрироваться

Туториал [Lua] Учимся вместе или "Хэппи Луа"

Продолжать или не стоит этого делать?

  • Да, давай!

    Голосов: 66 81,5%
  • Не, не надо!

    Голосов: 4 4,9%
  • Ну можно еще попробовать, а дальше посмотрим...

    Голосов: 11 13,6%

  • Всего проголосовало
    81
Стандартные функции Lua.

В Lua, так же как и во всех ЯП, есть функции и операторы, которые уже "встроены" в язык.
Ранее мы пользовались двумя операторами: print() и type(). Сейчас мы разберем еще несколько подобных примеров, а именно:
  1. io.write();
  2. io.read();
  3. math.sqrt();
Это 3 самых простых примера, с одним из которых вы уже встречались.


io.write();

Функция io.write() равна оператору print()!
Код:
print("Можно записать так!");
io.write("А можно и так!");


io.read();

Функция io.read() позволяет записывать данные в переменную при помощи клавиатуры или другого любого средства ввода.
Код:
name = io.read();
io.write("Меня зовут "..name);
Это самый простой пример функции io.read(). Повторите его у себя, изменяя название переменной и смысл(не "Меня зовут", а "Его зовут").
Вот еще один пример:
Код:
io.write("Как зовут твоего пони?");
ponni = io.read();
print("Моего пони зовут "..ponni);

С данной функцией можно проделать один злодейский план трюк.
Код:
print("Каков ваш возраст, сударь?");
pya = io.read("*n");
io.write(pya..", а чё?");
Как вы думаете, что произойдет? 5..4..3..2..1 А произойдет вот что! В переменную pya возможно будет записать данные только типа number(тобешь цифры)!
Вот попробуйте записать в переменную с такими "добавками" не цифры. У вас вылезет коварная ОБИШКА!

math.sqrt();

Это функция вычисления квадратного корня.
Код:
kopeHb_kopeHb_MotHerFucKer = math.sqrt(16);
print(kopeHb_kopeHb_MotHerFucKer)
Вам выведет 4.

Ааааа, я совсем забыл! Сейчас на секунду отвлечемся. Lua чувствителен к регистру! Переменные rich и ricH - совершенно разные!!! Это же дело и с операторами\функциями! PriNt("std") и print("std") - очень разные штучки! Первая выдаст ошибку, ибо не правильно написал! Так что обратите на это внимание и проверьте на деле!

А теперь обратно к корням.
Больше про них нечего рассказывать. Нууу, можно еще вот такой примерчик, чтоб знали:
Код:
x = 25;
j = math.sqrt(x);
io.write(j);

Список всех функция и операторов вы можете посмотреть ТУТ, так же к ним есть описание(на инглише, но не беда).
А домашнее задание таково:
Запишите в переменные имя, ник, примерное кол-во волос на голове, кол-во глаз и зубов. Выведете их, а затем вычислите квадратный корень из волос, зубов. И выведете. Удачи! :)
 
x1=BedinINC
x2=10000
x3=2
x4=32
print(math.sqrt(x2+x3+x4))
Домашку лучше сложнее давать, реально =).
К примеру, работа с круговой диаграммой. Дам пример из олимпиады по информатике, простейшее задание из 5.
Да, пожалуй так:
Дан круг, фортуны. На нём есть, к примеру, 4 деления (ну так проще, ведь дело только в алгоритме). Измерить, какое из делений выпадало чаще всего таким образом: сначала вводишь кол-во раз, сколько ты его крутил, а потом вводишь градусы, на которые он поворачивался. Выводом будет являться название одного деления, или нескольких, при условии, что кол-во их выпадений было равным.
 

Домашку лучше сложнее давать, реально =).
Я теперь сначала тебе буду скидывать урок, а ты к нему домашку, вот так вот! ;)


Дан круг, фортуны. На нём есть, к примеру, 4 деления (ну так проще, ведь дело только в алгоритме). Измерить, какое из делений выпадало чаще всего таким образом: сначала вводишь кол-во раз, сколько ты его крутил, а потом вводишь градусы, на которые он поворачивался. Выводом будет являться название одного деления, или нескольких, при условии, что кол-во их выпадений было равным.
Мы в еще не проходили if then else :D ну я то прошел
 
Уже месяц прошел, а уроков нету :С
 
Уже месяц прошел, а уроков нету :С
Мне бы помощника. А то я хочу много о чем рассказать, а вот о чем сначала, то не знаю :( Да и задания у меня плохие выходят, но это не такая проблема, легко решается. Нужен тот, кто бы меня двигал по плану! Желательно, чтоб это был читатель, ведь как не читателю знать, что он желает увидеть.
 
Мне бы помощника. А то я хочу о много рассказать, а вот о чем сначала, то не знаю :( Да и задания у меня плохие выходят, но это не такая проблема, легко решается. Нужен тот, кто бы меня двигал по плану! Желательно, чтоб это был читатель, ведь как не читателю знать, что он желает увидеть.
Хорошо, дам подсказку - следующий урок присвятить нужно циклам и логическим операторам (и, или, не, иначе)
 
Хорошо, дам подсказку - следующий урок присвятить нужно циклам и логическим операторам (и, или, не, иначе)
А тип table сами разберете?
Я думал, что сначала надо пройтись по всем типам, а потом к циклам и т.д.
 
А, ну тогда в таком случае лучше типы разобрать, верно подметил ;)
 
Тип table.

Тип table в Lua - самый обыкновенный массив!

Как записывается сам тип:
Код:
table_page = {booleans="true or false",4}; -- первый способ создания массива
table_page_two = {}; -- начало второго способа создания массива
table_page_two[3] = "AIE HE IAO"; -- наполняем массив, созданный вторым способом
table_page_two["party"] = "PARTY HARD!!!"; -- наполняем...
table_page_two[4] = 696; -- наполняем
-- Устраиваем "проверочку" нашим массивам
print("Сначала массивы \"table_page_two\"");
print(table_page_two[3]);
print(table_page_two["party"]);
print(table_page_two[4]);
print("Теперь массивы \"table_page\"");
print(table_page["booleans"]);
print(table_page[1]);
print("Теперь все вместе!");
print(table_page["booleans"]..table_page[1]..table_page_two[3]..table_page_two["party"]..table_page_two[4]);

Если вы все осмыслили, съели пончик и запили все это соком, то браво! Урок не будет большим. По типу долго разбирать нечего, а вот действия с таблицами пойдут вам на самостоятельное развитие! Ищем тут table.concat, table.insert, table.pack и т.д. Заходим в гугл переводчик, если плохо с английским, разбираемся и радуемся!
P.S. Призываю @
BedinINCORP (с тебя олимпиадное задание)
 
Эмм... То есть ты судишь о возможностях языка только из того, что было кем-то сделано и ты это видел? Я, к примеру, не видел ничего, кроме калькуляторов на фортран. Это же не значит, что он только для них сделан. Просто я не интересовался языком, увидел пару раз краем глаза работы.
Любой язык способен работать с библиотеками => люа приспособлен для работы с графикой.
Ссылки давать не буду, т.к. просто лень гуглить.
Я видел на фортран базу данных для молокозавода :coffee:
 
Последнее редактирование модератором:
Какое Lua имеет отношение к Bukkit на джаве?
  1. Есть разные плагины под bukkit, в которых используется lua(google в помощь)
  2. Когда-то, где-то видел что-то вроде движка для плагинов под bukkit на lua (типа плагины писать на lua)
  3. Мод ComputerCraft (или как-то так называется)
P.s. По 2 пинкту. Есть плагин lukkit, который позволяет простенькие плагины писать на lua, но это не тот, что я вспомнил...
 
Я больше согласен со slenky, я сейчас даже не понимаю, зачем создавал такую тему :cry:
 
Бросил это дело) Java лучше, она как рыжая милая девочка, которая иногда превращается в бестию! Мммм
 
Хорош смотреть прон с участием байткода java.
Она похожа на девочку с твоей авки :3
Немножко поднимем тему.
АПП​
Если Вы все еще что-то помните из этого курса или углубились дальше, то предлагаю Вам развлечься!
Как Вы смотрите на написание под Android и iOS? Если положительно, то продолжайте читать!

Corona SDK предлагает кодерам Lua погрузиться в написание свои приложений для Android и iOS. Angry Birds создается за один вечер. Corona SDK рассчитана на 2D графику, включает в себя уже готовую физику. На сайте вы можете найти туториалы, которые все прекрасно рассказывают и показывают на деле!
Прекрасно документированный API. Быстрый эмулятор, который позволяет видеть результат сразу же! Код можно редактировать в Microsoft Word, Notepad++, Eclipse for Lua, да хоть стандартный текстовый редактор!
Дерзайте!
 
Последнее редактирование:
Назад
Верх