Feed The Beast Wiki

Follow the Feed The Beast Wiki on Discord or Mastodon!

READ MORE

Feed The Beast Wiki
Advertisement
This page is a translated version of the page Getting Started (ComputerCraft) and the translation is 4% complete.
Outdated translations are marked like this.

Основе

Увод

ЦомпутерЦрафт се примарно састоји од три главне компоненте; Компјутера, Корњача, и Додатака који се моги закачити на корњаче и компјутере да би проширили њихову функционалност. Могуће је неправити сва 3 дела бе писања програма, користећи уграђене програме... али чинећи то игноришете прави потенцијал ЦомпутерЦрафт-а. Овај водич подразумева да корисник нема искуства са Луом, језик за програмирање који користи ЦомпутерЦрафт и пружа неке основе како напредује. Такође имајте на уму да овај водич само додирује основу и концепте ЦомпутерЦрафт-а; додатне информације можете наћи на официјалном сајту као и кроз овај водич.

Тхе Цомпутер

Тхе фирст анд мост басиц цомпонент оф ЦомпутерЦрафт ис тхе Цомпутер. Тхе реципе ис фаирлy инеxпенсиве анд цан бе маде релативелy еарлy иф оне луцкс оут финдинг редстоне. Тхе цомпутер маy бе плацед доwн wхеревер тхе плаyер ликес анд цан бе пицкед уп агаин бy бреакинг ит wитх анy тоол.


Ригхт-цлицкинг он тхе Цомпутер брингс уп тхе ЦрафтОС цомманд лине (ЦрафтОС ис тхе дефаулт оператинг сyстем фор цомпутерс); ит'с фром хере wхере мост усерс рун програмс он тхеир цомпутерс.

Басиц ЦрафтОС Цоммандс

Тхе басиц цоммандс усед ин ЦрафтОС аре, фор тхе мост парт, еитхер идентицал ор верy симилар то тхе басиц цоммандс усед ин неарлy алл дистрибутионс оф *ниx оператинг сyстемс; ас суцх, мост усерс (евен тхосе wхо хаве онлy оццасионаллy усед а цомманд лине ин отхер ОС'с, суцх ас Wиндоwс ор ОСX) схоулд бе фамилиар ор еасилy абле то бецоме фамилиар wитх тхем. Алл цоммандс аре рун фром тхе ЦрафтОС. Ноте тхат параметерс ин италицс аре цонсидеред оптионал.

цомманд/цомманд алиас <параметерс> Цомманд десцриптион/усе
хелп <топиц наме> Он итс оwн, ретурнс а лист оф хелп топицс. Специфyинг тхе топиц афтер тхе цомманд ретурнс информатион он тхат топиц.
програмс Листс тхе аваилабле програмс то бе рун.
апис Ретурнс а лист оф аваилабле АПИс (апплицатион программинг интерфацес) тхат оне цан усе (виа Луа) фром wитхин ЦрафтОС. Море информатион он вариоус АПИс цан бе обтаинед бy тyпинг усинг тхе хелп цомманд фоллоwед бy тхе АПИ наме.
лс/лист <дирецторy> Листс тхе цонтентс оф а дирецторy. Иф но дирецторy ис гивен листс тхе цонтентс оф тхе цуррент оне.
цд <дирецторy> Цхангес тхе цуррент дирецторy; цан бе усед то го то тхе парент дирецторy оф wхере тхе цомманд ис иссуед.
мкдир <дирецторy наме> Цреатес а неw дирецторy wитх тхе гивен наме.
мв/мове/ренаме <source file> <destination file> Иф усед wитхоут а дирецторy патх ин тхе дестинатион, ренамес тхе филе; отхерwисе, wилл мове анд ренаме тхе филе.
едит <филенаме> Опенс а симпле теxт едитор то едит тхе филе намед. Иф тхе филе доесн'т еxист, ит wилл бе цреатед wхен тхе цонтентс аре савед. Прессинг ЦТРЛ wилл сwитцх то тхе цомманд мену, wхере оне цан саве ор еxит тхе едитор.
ребоот Рестартс ЦрафтОС.
пастебин <get/put> Импортант: Тхис цомманд wилл онлy wорк иф тхе ХТТП АПИ ис енаблед (ит ис бy дефаулт wитх мост ФТБ пацкс, бут ит маy бе турнед офф фор вариоус реасонс бy сервер админс ор мод пацк цреаторс).

Ретриевес тхе цонтентс оф тхе супплиед Пастебин цоде анд савес ит ас тхе филе специфиед. Тхе цоде ис тyпицаллy тхе нумберс/леттерс фоунд ин тхе Пастебин линк афтер http://pastebin.com (фор еxампле, иф тхе линк ис http://pastebin.com/NotValid1 тхен НотВалид1 ис тхе цоде). Тхис цомманд ис имменселy усефул фор схаринг цоде тхат оне хас цреатед ас wелл ас аллоwинг оне то wрите цоде ин ан еxтернал едитор анд импортинг ит инто тхе гаме. Пастебин хас 2 маин аргументс, пут анд гет. Пастебин гет <code> <filename> аллоwс yоу то саве Пастебинс то тхе цомпутер, wхереас Пастебин пут <filename> wилл пут тхе филе специфиед он Пастебин ас а публиц пост маде бy а гуест, анд wилл алсо телл yоу тхе цоде неедед то усе то гет ит.

Тхере аре манy море цоммандс, бут оне цан еасилy реад уп он тхосе бy усинг тхе хелп цомманд.

Кеyбоард Схортцутс

Тхе фоллоwинг кеyбоард схортцутс цан бе усед то цонтрол тхе цомпутер анд аре хандy фор есцапинг фром ан инфините лооп ор тестинг стартуп сцриптс.

Кеy Цомбинатион Ресулт
ЦТРЛ + Т Тхис wилл форцефуллy терминате (еxит) а програм.
ЦТРЛ + Р Тхис wилл форце тхе цомпутер то ребоот.
ЦТРЛ + С Тхис wилл форце тхе цомпутер то схутдоwн.

Программинг

То старт а неw програм, симплy тyпе едит фоллоwед бy а филе наме. Тхис гуиде wилл старт wитх тхе фирст тwо обвиоус програмс то гет тхе усер'с феет wет, бут wилл qуицклy мове то специфиц еxамплес тхат апплy то ЦрафтОС анд ЦомпутерЦрафт'с интерацтион wитх отхер објецтс ин тхе wорлд. Фунцтионс анд АПИ метходс усед ин еxамплес wилл хаве линкс тхат wилл еxплаин тхем фуртхер.

Хелло Wорлд

Тхе традитионал фирст степ ин алмост анy программинг лангуаге ис леарнинг хоw то оутпут а симпле лине оф теxт (усуаллy "Хелло wорлд.") то тхе сцреен. Тхис еxампле wилл схоw тхе реадер хоw то до тхат виа басиц усе оф тхе принт() фунцтион.

Опен а неw програм филе ин тхе едитор (рецоммендед наме: хелло), анд тyпе тхе фоллоwинг:

print("Hello world.")

Симпле, ригхт? Саве тхе филе анд еxит тхе едитор, тхен тyпе ин тхе наме оф тхе програм. Алл гоинг wелл, тхе фоллоwинг wилл аппеар ин тхе ЦрафтОС wиндоw:

> hello
Hello world.
>

Цонгратулатионс он такинг тхе фирст степ ин анy программинг лангуаге. Алтхоугх онлy оне лине, тхис програм демонстратес хоw то оутпут теxт то тхе wиндоw. Тхис ис усуаллy тхе примарy wаy то ретурн информатион то а усер (асиде фром грапхицс, wхицх аре беyонд тхе сцопе оф тхис гуиде).

Хелло Усернаме

Wхиле оутпуттинг теxт ис импортант, ит ис алсо импортант то рецеиве инпут (wхетхер ит ис информатион то бе усед бy тхе програм ор навигатион тхроугх а програм'с интерфаце). Тхис програм wилл еxпанд упон тхе принт() фунцтион, ас wелл ас интродуце вариаблес анд тхе реад() анд wрите() фунцтионс.

Опен а неw програм филе ин тхе едитор (рецоммендед наме: хелло2). Ентер тхе фоллоwинг ин...

write("Please enter your name: ")
local username = read()
print("Hello ", username, ".")

Саве анд еxит тхе едитор, тхен еxецуте тхе програм. Ит wилл еxпецт соме инпут фром тхе усер, бут тхе оутпут схоулд овералл лоок лике тхис:

> hello2
Please enter your name: CoderJ
Hello CoderJ.
>

Тхе принт фунцтион ин тхис еxампле цонцентратес тхе мултипле аргументс (ие

print("Hello "..username..".")

ис тхе саме ас

print("Hello ", username, ".")

Тхис еxампле схоwс хоw то цреате а програм, хоw то симплy принт информатион то тхе сцреен, симплy реадинг инпут, анд сторинг дата ин а вариабле.

Цомпутер Лигхт Сwитцх

Тхис еxампле реqуирес а литтле море сетуп тхан јуст тхе басиц цомпутер. То тхе лефт оф тхе цомпутер, плаце еитхер соме редстоне ор ред аллоy wире (онлy оне блоцк ис неедед). Неxт то тхат, плаце а ламп (ит доесн'т маттер wхицх тyпе). Плеасе ноте оне цан плаце тхис сетуп он анy сиде оф тхе цомпутер, хоwевер, тхе плацемент wилл аффецт хоw тхе цоде неедс то бе wриттен (ит ис преттy селф еxпланаторy, тхоугх).

Ин тхис еxампле, qуите а феw неw фунцтионс/статементс аре интродуцед инцлудинг тхе wхиле лооп, иф...тхен...елсе статементс, ос.пуллЕвент(), принт() wхицх ис, редстоне.сетОутпут(), анд цомментс (фор еасе оф навигатинг/идентифyинг сецтионс оф цоде). Цомментс аре тхе теxт тхат ис афтер а --

Ентер тхе фоллоwинг цоде (феел фрее то омит цомментс; тхеy аре тхере фор еасе оф реадинг тхе цоде бут ит'с ундерстандабле иф оне феелс ит'с а бит муцх то тyпе ин):

-- Computer Light Switch
local side = "left"      -- Set the side for the redstone output
local userinput = ""     -- Initialize user input
local event = ""         -- Initialize event

redstone.setOutput(side, false)    -- Clear output, just in case.

while true do

-- First part of the loop, lamp is off.
  term.clear()                       -- clear the screen
  term.setCursorPos(1,1)             -- Put the cursor at the top left corner.
  print("To turn lamp on, press L.")
  print("To exit, press any other key.")
 
-- Wait for user input (as a character), convert it to uppercase.
  event, userinput = os.pullEvent("char")
  userinput = string.upper(userinput)

-- Check to see if the input is an L, otherwise, break the loop.
  if userinput == "L" then
    redstone.setOutput(side, true) -- Turn on the redstone output
  else
    term.clear()
    break
  end

  term.clear()                     -- clear the screen
  term.setCursorPos(1,1)           -- Put the cursor at the top left corner
  print("To turn lamp off, press L.")
  print("To exit, press any other key.")

-- Wait for user input (as a character), convert it to uppercase.
  event, userinput = os.pullEvent("char")
  userinput = string.upper(userinput)

-- Check to see if the input is an L, otherwise, break the loop.
  if userinput == "L" then
    redstone.setOutput(side, false) -- Turn off the redstone output
  else
    term.clear()
    break
  end

end -- End of while true loop.

Руннинг тхис цоде wилл схоw сометхинг лике тхе фоллоwинг он тхе сцреен:

 To turn lamp on, press L.
 To exit, press any other key.

(Ассуминг усер прессес L, тхе ламп турнс он анд тхе фоллоwинг схоwс уп...)

To turn lamp off, press L.
To exit, press any other key.

Прессинг анy отхер кеy wилл ретурн тхе усер то тхе ЦрафтОС промпт. Тхис програм лоокс цомплицатед, бут ин реалитy ит'с јуст верy мессy (анд ацтуаллy виолатинг а феw цонвентионс). Хоwевер, wритинг тхис цоде схоwс тхе усер тхе ессенце оф wхат ис хаппенинг анд сетс оне уп фор тхе неxт еxампле.

Цомпутер Лигхт Сwитцх Мк. II

Тхис еxампле wилл усе тхе сетуп фром тхе превиоус еxампле. Хере, тхе усер wилл леарн то усе фунцтионс ас wелл ас отхер аспецтс оф тхе Редстоне АПИ то цонтрол тхе ламп анд авоид "булкy" цоде. Ит ис рецоммендед то старт а неw програм филе ратхер тхан едитинг тхе олд оне (дуе то тхе wаy тхе ЦрафтОС едитор wоркс). Фор симплицитy I wилл омит мост оф тхе превиоус цомментс то аллоw тхе цоде то бе сеен еасиер. Тхис програм усес а неw парт оф тхе редстоне АПИ, редстоне.гетОутпут(сиде), wхицх аллоwс тхе цомпутер то реад wхетхер тхе цомпутер ис поwеринг редстоне ор нот, анд такес онлy оне аргумент: сиде.

local side = "left"      
local userInput = ""     
local event = ""      
 
redstone.setOutput(side, false)   
 
-- because we are doing something repetitively in the previous program, a function can greatly simplify it
-- however the function is like a new room, it cannot access any variables unless it is given them, in this case the first argument will be named whichSide inside this room.
local function redraw(whichSide)
                         
  --term.setCursorPos(1,1)             
  if redstone.getOutput(whichSide) then -- here the lamps state is checked by reading if the Redstone is on
    print("To turn lamp off, press L.")
  else -- if it is not on then
    print("To turn lamp on, press L.")
  end
  print("To exit, press any other key.")
end
while true do
  -- this will run the code in the function, but the function needs to know what side in order to check if the lamp is on, so the first argument we give it is side, which tells the room that whichSide is side
  redraw(side)
 
  event, userInput = os.pullEvent("char")
  userInput = string.upper(userInput)
  print(userInput)
 
  if userInput == "L" and not redstone.getOutput(side) then
    redstone.setOutput(side, true) -- Turn on the redstone output
  elseif userInput == "L" and redstone.getOutput(side) then
    redstone.setOutput(side, false) -- Turn off the redstone output
  end
  if event=="char" and userInput~="L" then
    break
  end
 
end

Тхе сет оф Иф статементс цан бе симплифиед то:

if userInput == "L" then
  -- if false set true, if true set false
  redstone.setOutput(side, not redstone.getOutput(side))
elseif event == "char" then
  -- you already know userInput ~="L"
  break
end

Смарт Цомпутер Лигхт Сwитцх

Цонтент цоминг.

Адванцед Цонцептс

Адванцед Еxамплес

Смарт Wхоле Хоусе Лигхтинг

Wхат То До Wхен Тхингс Дон'т Wорк

Ит wилл хаппен; оне wилл спенд тиме метицулоуслy wритинг цоде онлy то саве анд рун тхеир програм то финд...ит wон'т wорк. Тхере'с усуаллy а феw импортант тхингс то цхецк бефоре тхроwинг тхе моусе ат тхе неарест инноцент бyстандер...

  1. Цхецк тхе еррор мессаге... 99.999% оф тхе тиме ит wилл телл оне еxацтлy wхере тхе мистаке wас маде (импропер сyнтаx, миссинг енд статемент, етц).
  2. Цхецк тхе усе оф цасе (уппер анд лоwер цасе леттерс). Ремембер, фунцтионс усуаллy старт wитх а лоwер цасе леттер бут аддитионал 'wордс' wилл хаве уппер цасе ин тхем (фор еxампле - редстоне.сетОутпут).
  3. Цхецк цонтрол статементс (wхиле, фор, иф, етц). Маке суре тхеy'ре децларед ригхт анд терминатед цоррецтлy (сометимес а миссинг енд статемент wон'т регистер фор qуите а феw линес).
  4. Wхен ин доубт, wрите ит оут. Оне цан сометимес бе сурприсед хоw гларинг ан еррор ис wхен реwритинг сометхинг...деспите миссинг ит тхе фирст тиме.
  5. Аск тхе Цоммунитy. Сометимес тхингс аре трицкиер тхан тхеy аппеар то бе бут цханцес аре сомеоне хас маде тхе саме мистаке анд фигуред ит оут, хоwевер, тхере'с алсо а гоод цханце тхат wитх анотхер паир оф еyес он тхе проблем еверyоне цан леарн хоw то до ит... маyбе евен финд а беттер wаy! Јуст ремембер то сеарцх тхе форумс фор превиоус постс бефоре макинг а неw тхреад.

Сее алсо

Отхер лангуагес:
Advertisement