изучаем Lua

Тема в разделе "Оффтопик", создана пользователем Мяурицо, 9 сен 2015.

  1. Мяурицо

    Мяурицо Игрок

    А с чего собственно начать? Кто-то пишет что обязательно знание любого языка, так ли это? Или просто дополнительная опция которая упростит освоение?
  2. SD

    SD Игрок

    Советую начать с чтения документации. Возможно, дальше ходить и не придётся. Лично мне её хватило.
  3. Мяурицо

    Мяурицо Игрок

  4. CHEEZY TACOS

    CHEEZY TACOS Игрок

    [​IMG]
    Мяурицо нравится это.
  5. Talion

    Talion Игрок

    Если Language Specification полная, то етого достаточно чтобы изучить любой язык програмирования. Дальше в ход идут логика и алгоритмы.
  6. Мяурицо

    Мяурицо Игрок

    [​IMG]

    По ней. Появились вопросы. Почему if, or and и так далее не является идентификаторами? Или я неправильно понимаю слово идентификатор?
    Ещё вопрос в конце главы, Which of the following strings are valid identifiers?
    --- _end End end until? nil NULL
    Дело в использовании заглавной буквы? Я правильно понял? То есть ответ End.
  7. Мяурицо

    Мяурицо Игрок

    Извините за столь нубские вопросы, по сути они как раз таки и относятся к логике, но я лучше так, чем никак.
  8. Мяурицо

    Мяурицо Игрок

  9. не дается?)
  10. Maxwell

    Maxwell Игрок

    Тебе самому интересно вообще грызть сухую теорию онли и гадать? Всегда можно взять и поглядеть исходники и на глаз уже прикинуть что тебе понятно или не очень, и да, знакомство хоть с каким-то языком упрощает дело. Я в основном вообще знаю только паскаль и чуть цпп, но глядя на луа я уже вижу логику, главное чтоб текст оформлен был не криво.
    Луа я не учил никогда. Не редактировал даже.
    Однако я вот прям сейчас иду в аи гомункула в моём клиенте и сразу вижу примеры. Лучше кастомный из мираи, но и дефолтный сойдёт:

    (из AI\Util.lua)

    Код:
    function   IsInAttackSight (id1,id2)
       local x1,y1 = GetV (V_POSITION,id1)
       local x2,y2 = GetV (V_POSITION,id2)
       if (x1 == -1 or x2 == -1) then
         return false
       end
       local d     = GetDistance (x1,y1,x2,y2)
       local a  = 0
       if (MySkill == 0) then
         a  = GetV (V_ATTACKRANGE,id1)
       else
         a  = GetV (V_SKILLATTACKRANGE,id1,MySkill)
       end
    
       if a >= d then
         return true;
       else
         return false;
       end
    end
    
    (edit: кстати точки с запятой тут не нужны вообще, фиг знает чего их поставили)

    Сразу видно ответ как минимум на один твой вопрос - большие буквы в операторах/зарезервированных словах вовсе не обязательны.
    Местами тут многовато пробелов, но это уже дело писавшего, разбиение на строки вменяемое, всё видно.
    Короче не грызи просто учебник и его тесты, а сразу бери маленькие примеры исходников про разные штуки и копайся с ними. И пробуй сам такие писать.
    Параллельно с учебником, если тебе он удобен.

    Олсо товарищ сейчас кинул такое: http://tylerneylon.com/a/learn-lua/

    Плюс вопрос можно банально загуглить, ну. Фриро и так маленький форум, так ещё и как бы не является программистским вообще.
  11. SD

    SD Игрок

    Чисто для читабельности. О чём и говорится в штатной доке. Которую я уже советовал почитать. Она написана специально для тех, кто программированием никогда не занимался.
  12. Maxwell

    Maxwell Игрок

    Так там выше несколькими строками в другой функции то же самое, только без. Странный писатель.
  13. Talion

    Talion Игрок

    Идентификатор ето переменная которая может местить в себе значение. if, or and и так далее ето служебные слова которие при компиляцыи превращаютса в команды процесора.

    В главе должно быть описано какие свойства должен иметь идентификатор чтобы правильно компилироватса. Ищо там пишетса чуствителен ли язык к регистру. если не чуствителен то разницы между End и end нету, и с большой буквы будет неверный ответ.
  14. SD

    SD Игрок

    Почему ты думаешь, что там был один и тот же писатель?..
  15. Мяурицо

    Мяурицо Игрок

    да, там было указано что end забронировано (вообще все они с маленькой буквы) но при этом далее указали что End и END тоже разные.
  16. Мяурицо

    Мяурицо Игрок

    Спасибо большое!
  17. Мяурицо

    Мяурицо Игрок

    И тебе спасибо!
  18. Мяурицо

    Мяурицо Игрок

    В принципе все вы правы, не стоило грызть книгу без примеров. Но у меня возникла проблема билдинга самого луа не говоря уже об инсталляции. Почему так много вариантов билдинга существует и чем они отличаются? Почему некоторые очень сложные а некоторые простые? И да, надо ли его ставить вообще? зная язык не проще ли хоть в блокноте долбать? Или программе имеющей нумерованные строки?
  19. SD

    SD Игрок

    Зачем его вообще билдить? С оффсайта скачивается готовый интерпретатор. И дока. Всё, телемаркет.
    Мяурицо нравится это.