( +18.90 18,7 -0.20 )

[Guide] Изучаем ComputerCraft [часть 2]

Автор: poccu
[Guide] Изучаем ComputerCraft [часть 2]

Всем привет, с вами снова poccu, и сегодня я решил
сделать вторую часть своего гайда по ComputerCraft.
В этой части мы продолжим изучать команды CraftOS,
и попробуем написать и разобрать по частям программу на Lua.

Если вдруг кто-то не читал первую часть, то вот она: Click!


В прошлом уроке мы немного научились работе с файлами в CraftOS.
Сегодня мы будем продолжать учится работе с файлами,
а также попробуем написать свою первую программу.


Давайте вспомним то, что мы узнали на прошлом уроке:

  • help — открыть помощь.
  • dir и ls — узнать, какие файлы и папки есть в этой директории.
  • edit — создать или изменить файл.
  • rename — переименовать файл.
  • delete — удалить файл.


Для копирования файлов в CraftOS используется команда copy.
copy [Путь к файлу] [Путь к тому месту, куда сохранится файл]


Например: У нас есть файл под названием test. Если мы напишем
команду copy test test1, то рядом с этим файлом появится файл под названием test1,
с полностью идентичной информацией в нем.

А теперь представим, что нам нужно переместить файл в другое место.
Мы можем сначала скопировать его в нужное место командой copy, а потом
удалить оригинал, но это не очень удобно. Для нашего с вами
удобства, существует команда move.
move [Исходный файл] [Директория, куда нужно переместить файл]

[Guide] Изучаем ComputerCraft [часть 2]

Теперь представим то, что нам нужно создать папку (директорию).
Для этого нам потребуется команда mkdir.
mkdir [Путь]


Если мы напишем mkdir folder1, то мы создадим новую пустую
папку с именем folder1, в которой мы теперь можем хранить файлы.

Теперь представим такую ситуацию:
Мы пользуемся обычным компьютером (не золотым), икогда мы пишем
команду dir или ls, мы не можем понять, какие это файлы. В золотом
компьютере папки помечены зеленым цветом, а в
обычном компьютере они не помечены вообще.
[Guide] Изучаем ComputerCraft [часть 2]

Так что же нам делать? Для этого есть команда type.
Она говорит нам, какой это тип файла.
type [Путь к файлу]

[Guide] Изучаем ComputerCraft [часть 2]


А теперь немного про пути к файлам. Если мы напишем команду cd ..,
то мы вернемся на одну директорию назад. Если мы хотив вернутся в начальную директорию,
нам нужно написать cd \.


Отлично, с работой с файлами в CraftOS мы разобрались!
Теперь я просто опишу некоторые команды,
и мы приступим изучать программирование!



  • Команда shutdown выключает наш компьютер.
    Для включения просто заного зайдите в него.
  • Команда reboot перезагружает наш компьютер.
  • Команда time позволяет узнать текущее игровое время.




Отлично! Вот мы и можем приступать к программированию.
Программирование происходит не в ОС CraftOS, а в
файлах, которые создаются командой edit. Давайте напишем нашу первую программу,
а потом разберем ее.
print ("Hello world!")

[Guide] Изучаем ComputerCraft [часть 2]

Для запуска программы мы должны обратно вернуться в CraftOS.
Сейчас мы должны просто написать название программы, и ничего больше.
После нажатия кнопки Enter мы увидим, что на экране появилась надпись
Hello world.
[Guide] Изучаем ComputerCraft [часть 2]


Давайте все разберем по порядку:

  • print — вызов функции print, которая печатает текст и переносит курсор на следующую строку.
  • Скобочки нужны для того, чтобы присвоить этой функции дополнительные параметры. В данном случае дополнительным параметром служит выводимый текст.
  • Про кавычки я расскажу чуть-позже.
  • Ну а Hello world! это текст, который мы выводим.


И так, давайте я вам расскажу, зачем нужны эти кавычки, и почему
без них мы не смогли обойтись.
В Lua присутствует несколько типов данных.

Первый из них — текстовый (String). Мы как-раз им и пользовались.
В Lua, как и во многих других языках программирования, кавычки используются
для отображения текста. Именно поэтому надпись Hello World мы заключили в кавычки.
В String'е могут находиться абсолютно любые знаки (буквы, числа, спецсимволы).

Второй — Boolean. В нем могут храниться лишь значения true (истина) и false (ложь).

Третий — числовой. В нем хранятся различные числа.

Ну и четвертый — nil. Nil это пустое значение.

Это не все типы данных, которые есть в Lua,
но нам пока-что будет достаточно и этого.

Теперь немного про переменные.
Переменные используются для хранения значений. Представим себе:
Пользователь вводит какие-либо данные в программу, которые понадобятся
программе чуть-позже. Для того, чтобы сохранить эти данные, можно использовать
переменные. В переменных могут хранится абсолютно любые типы данных.

И еще кое-что: для ввода данных пользователем нужно использовать read().



Вот пример:
write ("Input: ")
a=read()
print ("Hello, ",a)

При запуске программы нас попросит ввести данные с клавиатуры.
[Guide] Изучаем ComputerCraft [часть 2]

После ввода данных и нажатии кнопки Enter, введенные данные запомнятся
в переменной a, и будут выведены командой print.
[Guide] Изучаем ComputerCraft [часть 2]

Давайте мы разберем и этот код:
  • В самом начале мы видим команду write. Она очень похожа на print, но у нее есть одно отличие. При выводе данных через print, в конце автоматически ставится Enter. В случае в write'ом это не так.
    [Guide] Изучаем ComputerCraft [часть 2]
  • Про доп. параметры и типы данных я уже рассказал.
  • На второй строчке мы видим переменную a. В ней будут храниться введенные нами данные.
  • После переменной стоит знак равно. Он означает присваивание переменной данных.
  • После знака равно, мы видим функцию read(), которая обеспечивает ввод данных пользователем с клавиатуры.
  • На третей строчке мы видим вывод через print. Причем хочу обратить ваше внимание на дополнительные параметры.
    ("Hello ",a)
    Там мы видим то, что после String'а, записанного в кавычках, стоит запятая.
    А уже после запятой стоит переменная. Почему так?
    Да потому-что разные данные должны отделяться друг от друга запятой.
    Сначала у нас идет String "Hello ", а после него через запятую переменная a.


Думаю, что на сегодня все. Если вы что-то не поняли, перечитайте гайд
или спросите об этом в комментариях. С вами был poccu, всем пока!
  1. ТруЪ Олдфаги-с

    3 июня 2014 23:31

    +2

    Жду оценок axez

    Цитата: poccu2
    Если вы заметили ошибки в тексте, то напишите об этом в комментариях.
  2. Посетители

    4 июня 2014 00:55

    +2

    Да ты что какие оценки здесь только одна оценка безупречно !!5 мем
  3. Главные редакторы

    4 июня 2014 02:05

    +1

    Юзфул[hide][/hide]
  4. ТруЪ Олдфаги-с

    4 июня 2014 07:36

    0

    roma3110,
    dedepete,
    Спасибо axez
  5. Посетители

    4 июня 2014 08:39

    0

    Не nil, а nul или null
    А так как всегда 5 мем
  6. Посетители

    4 июня 2014 10:11

    0

    Норм, чо. rainbow-face
  7. Посетители

    4 июня 2014 10:21

    0

    А можно ли, задать пароль который проверяется и если он правильный, комп подает сигнал на редстоун?
  8. ТруЪ Олдфаги-с

    4 июня 2014 10:22

    0

    Цитата: and_sha
    Не nil, а nul или null

    По моему правильно Nil axez

    Потом поищу в интернете, если что — исправлю...

    and_sha,
    ОцЕлОтИк,
    Спасибо =)
  9. ТруЪ Олдфаги-с

    4 июня 2014 10:29

    +1

    poccu,
    И не Inter, а Enter. axez
    Это уже точно.
  10. ТруЪ Олдфаги-с

    4 июня 2014 10:55

    0

    Ivan1765,
    Я и сам уже заметил, когда перечитал. Потом исправлю.

    Andryshik345,
    Да, можно.
  11. Посетители

    4 июня 2014 11:28

    0

    poccu,
    Можешь написать гайд?
  12. ТруЪ Олдфаги-с

    4 июня 2014 12:03

    0

    Andryshik345,
    На ютубе куча туториалов по этому. Даже на русском языке.

    Но в принципе могу.
  13. Просто хорошие люди

    4 июня 2014 12:14

    +2

    Превосходно.Правда опять было лень читать.
  14. ТруЪ Олдфаги-с

    4 июня 2014 12:56

    0

    Olmaznii,
    Ну axez
  15. ТруЪ Олдфаги-с

    4 июня 2014 13:30

    0

    Andryshik345,
    Вот довольно простой код (очень хорошо подходит для золотого компьютера):
    local function opendoor()
    term.setCursorPos(1,1)
    term.setTextColor(8192)
    print ("Successful!")
    rs.setOutput("right", true)
    sleep(4)
    rs.setOutput("right", false)
    end
    
    local function err()
    term.setTextColor (16384)
    term.setCursorPos(1,1)
    print "Wrong answer!"
    sleep (5)
    end
    
    while true do
    term.clear()
    term.setTextColor(1)
    term.setCursorPos(1,1)
    write ("Code: ")
    code=read()
    term.clear()
    if code=="tEst123" then opendoor()
      else err()
    end
    end
    


    Пароль: tEst123, можно заменить на любой другой.

    Примечание: дверь должка располагаться справа от лицевой части компьютера. Если она слева, тогда нужно на строках 5 и 7 заменить right на left
  16. XXXL ПХЛ

    4 июня 2014 13:46

    0

    Очень полезно, обязательно прочитаю в свободное время. sincere-troll
  17. ТруЪ Олдфаги-с

    4 июня 2014 13:50

    0

    Welex,
    Спасибо sincere-troll
  18. Просто хорошие люди

    4 июня 2014 14:57

    -1

    Цитата: and_sha
    Не nil, а nul или null

    Клик!
  19. ТруЪ Олдфаги-с

    4 июня 2014 15:03

    +1

    Зачем в бездну то? 5 Мем.
  20. Просто хорошие люди

    4 июня 2014 15:10

    0

    Injustice,
    Спасибо =)
  21. Просто хорошие люди

    4 июня 2014 15:17

    0

    Ещё одна часть. УРА! 5 мем
  22. ТруЪ Олдфаги-с

    4 июня 2014 15:51

    0

    cymrak12,
    Спасибо mil
  23. Посетители

    4 июня 2014 18:51

    0

    5 мем.
  24. ТруЪ Олдфаги-с

    4 июня 2014 19:07

    0

    Цеф,
    Спасибо =)
  25. Goldфаги

    4 июня 2014 19:39

    +2

    Цитата: Injustice
    Зачем в бездну то? 5 Мем.

    XXXL ПХЛ могут только в бездну.
  26. XXXL ПХЛ

    4 июня 2014 20:00

    +1

    Конечно, 5 мем! default3
  27. Просто хорошие люди

    4 июня 2014 20:24

    0

    5 мем, неплохо
  28. ТруЪ Олдфаги-с

    4 июня 2014 22:06

    0

    Maksimym200,
    Golddrak,
    Спасибо =)
  29. Посетители

    4 июня 2014 22:50

    0

    Очень увлекательная и интересная новость , 5 мем rainbow-face
  30. Посетители

    4 июня 2014 23:41

    0

    Спасибо за адский труд. Все разжевано как надо! Оформление зашибись! ОДна оценка - 5 мем!!!
  31. ТруЪ Олдфаги-с

    5 июня 2014 00:01

    0

    GLaDOS3_0,
    Bagrovich,
    Большое спасибо =)
  32. ТруЪ Олдфаги-с

    5 июня 2014 10:43

    0

    Очень мало таких новостей в бездне. 5 мем.
  33. XXXL ПХЛ

    5 июня 2014 15:13

    +2

    Цитата: Winlocker
    Очень мало таких новостей в бездне

    Потому что там им не место.
  34. ТруЪ Олдфаги-с

    5 июня 2014 15:28

    0

    заключилив

    абсолютнолюбые

    ошибка файла ошибка файла перезагрузка перезагрузка.
    Кароч, опять нечего не понял.
    Оценка: Отлично ( 5 мем)
  35. Посетители

    5 июня 2014 16:07

    -5

    Больше похоже на гайд для начинающих программистов dudecomeonmeme
  36. Просто хорошие люди

    5 июня 2014 19:54

    0

    Winlocker,
    blaster135790,
    Спасибо!

    Человек без имени O_o,
    axez
  37. Посетители

    6 июня 2014 10:37

    0

    poccu,
    Порылся в CraftOS, действительно nil.
  38. Посетители

    6 июня 2014 14:22

    -1

    5 мем что скизать и плиз можешь зделать так чтоб когда вкл комп надо ввести пароль чтоб получить к нему доступ badumtss
  39. ТруЪ Олдфаги-с

    6 июня 2014 20:20

    0

    XDEN,
    Ага, сейчас пилю третью часть. В ней будет описано что-то похожее.

    and_sha,
    Я был прав poker-face2
  40. Посетители

    6 июня 2014 23:47

    +1

    Lua на C++ похож
  41. Посетители

    7 июня 2014 14:11

    0

    Чувак,читать 3 года,да и ещё сам писал . Если можешь,сделай просто видео. Но все равно rainbow-face
  42. ТруЪ Олдфаги-с

    8 июня 2014 10:13

    0

    Цитата: markvolyn
    читать 3 года

    Я все это перечитал за 5 минут :/

    Miner020,
    Да в основном все языки программирования чем-то похожи друг на друга.


    Miner020,
    markvolyn,
    Спасибо!
  43. Олдфаги

    4 июля 2014 10:19

    0

    Отличная новость, Оценка: 5 default3
  44. Посетители

    10 ноября 2014 14:44

    0

    то че надо 5 мем
  45. Гости

    13 марта 2017 13:30

    0

    Я так и не понял про переменные, зачем нужно писать a=read() или нельзя писать так print ("Hello",read()) и зачем скобки после read?
  46. Просто хорошие люди

    4 августа 2017 14:28

    0

    когда я ввожу название программы, мне пишет: bios:14: [string "kra"]:1: ')' expected что с этим делать и как запустить программу?
Для написания комментария зарегистрируйся на сайте, это займет всего пару минут, голосуй за новости, зарабатывай репутацию.

Последние сообщения с форума

Название темы
Статистика
Последнее сообщение

Просмотров: 145262

Ответов: 693

Просмотров: 1131

Ответов: 14

Просмотров: 6370

Ответов: 157

Просмотров: 116

Ответов: 0