Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!

Grupo para reunir as pessoas que acompanham os vídeos no canal Press Key to Play e discutir os assuntos abrangidos pelo Blog PK2P.


Você não está conectado. Conecte-se ou registre-se

[tutorial] minecraft: computercraft - 2º parte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

e ae galera essa é segunda parte do tutorial computercraft e nele vamos aprender o basico da programação lua ou seja vamos criar scripts dessa linguagem no mod, nesse tutorial nao vou abordar toda a linguagem lua mesmo por que se fosse para fazer isso eu ia escrever mais um ebook sobre ela e nao um tutorial de sei la quantas partes kkk, entao para começar a gente criar um arquivo de texto no computador do jogo com o comando edit seguido do nome do script no meu caso vou criar um chamado kodo.lua

Código:
edit kodo.lua



depois aperte control (ctrl) e aperte em save e por fim control e exit para salvar e sair do editor, para a gente executar o script basta apenas digitar o nome do script sendo ele no meu caso kodo.lua (lembrando que esse meu script nao faz nada por enquanto)

Código:
kodo.lua

outra forma é usar o comando sh seguido do nome do script

Código:
sh kodo.lua



como podemos ver ele nao fez nada isso por que nao tem nenhum codigo no script, entao vamos digitar nosso primeiro codigo ou seja vamos codar pela primeira vez (caso voce ja programe em outra linguagem talvez a milésima vez kkk), para fazer isso temos que abrir de novo o script para editar ele no caso basta digitar o comando edit seguido do nome do script ou podemos criar outro tambem (voce pode criar um script para cada função sendo um para abrir porta outro para ativar redstone, outro para ativar armadilha, ou entao pode criar apenas um unico script com um menu de opções com todas elas, no caso vamos aprender isso mais para frente), tambem antes de tudo preciso falar sobre funções, no caso uma função é um procedimento (um trecho de codigo) pronto que permite voce usar ele sempre que quiser sem precisar rescrever o codigo, por padrao a linguagem lua tem milhares de funçoes prontas que facilita para o programador e as vezes funções necessárias para programar, entre essas funções temos funções que mostra algo na tela, funções que ler teclas pressionadas entre outros milhares de coisas, as funçoes tem uma entrada que chamamos de argumento ou seja todo argumento de uma função é uma entrada para ela que pode ser um numero texto ou qualquer outra coisa (podemos pensar em uma função que soma dois numeros sendo que tem dois argumentos que sao os numeros que vao ser somados ou seja cada script que usar essa função pode passar qualquer numero sem esta limitado a ele), e toda função tem um retorno que é valor que ela retorna depois que função processa aquilo (que poderia ser o resultado do exemplo da função que soma), embora isso seja relativo uma função nao precisa ter argumento como tambem nao precisa ter retorno embora usar argumentos e retorno deixa ela mais dinamica para ser manipulada

Código:
edit kodo.lua

para começar vamos digitar um codigo simples que mostra algo na tela para isso vamos usar a função print, para usar o print basta digitar ele e passar o argumento, sendo esse argumento um texto (os textos sao chamados de strings, e todas as strings fica entre aspas), na linguagem lua e muitas outra para chamar uma função basta digitar o nome dela seguido de abre e fecha parenteses, dentro desses parenteses seria o argumento (se tiver mais de um argumento a gente separa por virgula)

Código:
print("kodo no kami")



agora vamos salvar e executar ele para isso aperte control e depois aperte em save depois control e exit, e por fim executamos novamente com o comando sh

Código:
sh kodo.lua



a gente pode usar varias vezes as funções porem tem que ser um embaixo da outra (porem pode dar quantas quebra de linha quiser)

Código:
print("kodo no kami")
print("programando em lua para")
print("o mod computercraft")

outra função que podemos usar para mostrar algo na tela é o io.write, essa função diferente da anterior que da uma quebra de linha a cada nova função essa é mostrado na mesma linha

Código:
io.write("programando em lua para ")
io.write("o mod computercraft")

tambem é possivel exibir tipos numericos com o print ou com io.write, a diferença que tipos numericos a gente pode fazer operações matematicas diferente das strings, os tipos numericos é representado sem o aspas diferente da string (o tipo numerico 315 é diferente da string "315")

Código:
print(315)

o tipo numerico anterior é chamado de decimal ele é um numero inteiro sem casas decimais, alem dele existe outros como o ponto flutuante (float) que são numeros quebrados

Código:
print(3.15)

as variaveis são alocação de memoria que permite a gente armazenar valores nela, para armazenar algum valor em uma variavel basta a gente digitar o nome da variavel (pode ser qualquer nome porem nao pode começar com numero e nem ter espaço ou caracteres especiais), depois usamos o operador de atribuição que é o igual ou seja isso indica que estamos atribuido um valor para a variavel e por fim o valor que vamos armazenar que pode ser um tipo numerico ou uma string

Código:
fts = "kodo no kami"

podemos ler essa variavel com a função print ou io.write bastando digitar o nome da variavel com isso seria equivalente a esta manipulando o valor dentro da variavel

Código:
fts = "kodo no kami"
print(fts)

como dito antes é possivel armazenar outros tipos como numericos

Código:
senha = 123456
print(senha)

tambem da para armazenar um valor que esteja em uma variavel para outra variavel

Código:
primeiro = "kodo no kami"
segundo = primeiro
print(segundo)

podemos juntar (concatenar) duas ou mais strings ou variaveis usando ponto e ponto

Código:
nome = "kodo no kami"
print("seu nick e " .. nome)

tambem podemos fazer o mesmo em uma variavel

Código:
nome = "kodo no kami"
texto = "seu nick e "
final = texto .. nome
print(final)

é possivel fazer operaçoes matematicas com os tipos numericos, para fazer a operação de adição usamos o mais (+), subtração o menos (-), multiplicação usamos o asterisco (*), divisão usamos o barra (/), para o modulo que é o resto da divisao usamos porcentagem (%), podemos fazer a operação direto dentro da função ou podemos atribuir para uma variavel para manipular o valor

Código:
print(300 + 15)
print(300 - 15)
print(300 * 15)
print(300 / 15)
print(300 % 15)

tambem existem funções matematica como por exemplo a raiz quadrada math.sqrt, para usar ela basta a gente passar como argumento o valor e armazenar o retorno em uma variavel

Código:
raiz = math.sqrt(9)
print(raiz)

tambem podemos usar o retorno de uma função diretamente dentro de outra

Código:
print(math.sqrt(9))

para exibir um numero aleatorio usamos math.random passamos como argumento o numero inicial e o numero final (exemplo de 0 a 100)

Código:
aleatorio = math.random(0,100)
print(aleatorio)

para a pessoa escrever alguma coisa e manipular isso usamos a função read e atribuimos ela para uma variavel, no caso o programa vai ficar preso nessa parte ate a pessoa digitar alguma coisa e apertar enter (recomendo tambem usar o print antes indicando para o usuario digitar alguma coisa)

Código:
print("digite seu nome: ")
nome = read()
print("seu nome e " .. nome)



podemos usar a função read para entrar com tipos numericos tambem

Código:
print("digite o primeiro numero: ")
x = read()

print("digite o segundo numero: ")
y = read()

soma = x + y
print(soma)

alem das funçoes e das operações tambem existem as estruturas e entre elas temos a estrutura condicional que permite executar determinado trecho de codigo ou nao dependendo da condição, essa condição é uma logica booleana onde se a condição for satisfeita é dita como verdadeira se nao dito como falso, uma das estruturas codicionais é o if que executa determinado trecho se a condição for verdadeiro, para usar a estrutura if digitamos o if seguido da condição entre parenteses depois o then, logo depois colocamos o codigo que sera executado apenas se a condição for verdadeira e para terminar o escopo do if usamos o end (ou seja tudo entre o then e o end pertence ao escopo do if com isso so vai ser executado se a condição for verdadeira

Código:
if()
then
end

a condição que podemos usar ou a logica condicional pode ser igual que retorna verdadeiro se os dois valores forem iguais ou seja so vai executar o trecho do if se os dois valores for igual, para representar o igual usamos duas vezes o igual (==)

Código:
if(315 == 315)
then
print("os dois numeros sao iguais")
end

pode ser usado string e variaveis tambem

Código:
senha = "kamisama"
if(senha == "kamisama")
then
print("acesso permitido. entre")
end

da condição pode ser diferente ou seja retorna verdadeiro e executa o trecho do codigo se os dois valores for diferente um do outro, para o diferente usaos ~= (eu sempre confundo isso com a regex da linguagem perl u.u )

Código:
if(315 ~= 100)
then
print("os dois numeros sao diferentes")
end

podemos usar a condição maior que retorna verdadeiro se o primeiro numero for maior que o segundo

Código:
if(315 > 100)
then
print("o primeiro numero e maior que o segundo")
end

ou menor caso o primeiro numero seja menor que o segundo

Código:
if(100 < 315)
then
print("o primeiro numero e menor que o segundo")
end

a gente pode usar uma estrutura condicional dentro da outro porem respeitando o escopo deles (sempre quando um escopo for fechado sempre vai fechar de dentro para fora), e uma boa pratica é sempre da um espaço a cada no escopo assim da para diferenciar a qual escopo o codigo pertence

Código:

valor = 315
if(valor > 100)
then
   if(valor < 500)
   then
      print("o numero e maior que 100 e menor que 500")
   end
end

podemos usar o else e conjunto com o if, no caso o else seria o trecho de codigo que seria executado se o if nao for executado ou seja ele é executado se a condição for falsa, para usar o else basta declarar ele depois do codigo do if porem antes do end

Código:
if(315 == 315)
then
   print("isso e verdadeiro")
else
   print("isso e falso")
end

tambem existe o elseif que seria varias condição if dentro de um if porem ele so vai executa a primeira que der verdadeiro

Código:

numero = 2
if(numero == 1)
then
   print("o numero foi 1")
elseif(numero == 2)
then
   print("o numero foi 2")
elseif(numero == 3)
then
   print("o numero foi 3")
else
   print("nenhuma delas")
end

alem da estrutura condicional existe a estrutura de repetição que repete determinado trecho de codigo dependendo da condição, sendo uma dessas estrutura o while que repete enquanto for verdadeiro, ou seja ele checa a condição a cada loop se ela for verdadeira ele repete de novo e fica assim nesse loop ate que a condição seja falsa, para evitar loop infinito usamos uma variavel como contador e quando essa variavel chega ate um determinado numero o loop encerra, tambem deve somar o valor em mais um a cada loop para o contador (atribui a propria variavel contador a ela mesmo somando mais um)

Código:
contador = 0
while(contador < 10)
do
   print(contador)
   contador = contador + 1
end

outra estrutura de repetição é o for onde podemos especificar o começo e o fim para repetir diferente do while que repete enquanto for verdadeiro, para usar o for basta a gente especificar uma variavel que vai ser o contador depois atribuir para ele o começo e o fim separado por virgula, veja o mesmo exemplo anterior do while com o for

Código:
for contador = 0,10
do
   print(contador)
end

é possivel parar um loop com o break

Código:
contador = 0
while(1 == 1)
do
   if(contador == 315) then
      break
   end
   contador = contador + 1
end

é possivel retornar a hora com a função os.time, no caso essa função retorna um tipo numerico (float) sendo o numero inteiro a hora e o numero depois do ponto os segundos arredondado, voce pode usar essa função para criar script que automatize tarefas em certo tempo como por exemplo acender as luzes em determinado horario

Código:
hora = os.time()
print(hora)

para pegar o id do computador usamos os.getComputerID

Código:
id = os.getComputerID()
print(id)

para reinciar o computador usamos a função os.reboot

Código:
os.reboot()

para desligar usamos a função os.shutdown

Código:
os.shutdown()

para a gente criar, escrever ou ler um arquivo primeiro temos que abrir o arquivo com a permissão especifica de leitura (r), escrita (w), ou concatenação que seria escrito no final do arquivo sem apagar o conteudo dele (a), para a gente criar ou abrir um arquivo usamos a função io.open e passamos como argumento para ela o arquivo que vamos abrir ou criar (para criar um arquivo temos que abrir com permissão de escrita ou concatenação w ou a), seguido da string de pemissão (r,w ou a), tambem temos que atribuir para uma variavel para manipular depois

Código:
arquivo = io.open("kami.txt","w")

para gente escrever em um arquivo usamos a função write porem temos que especifica o handle do arquivo que é nada mais nada menos que o nome da variavel que atribuimos o arquivo aberto seguido de dois pontos e a função, tambem temos que usar a função close no final (todas as alteração é salva apenas quando fechamos o arquivo aberto)

Código:
arquivo = io.open("kami.txt","w")
arquivo:write("isso vai para dentro do arquivo")
arquivo:close()



para ler o arquivo é parecido porem usamos a permissão de leitura e nao escrita, e a função read e nao a função write (tambem atribuimos ele para uma variavel para manipular)

Código:
arquivo = io.open("kami.txt","r")
leitura = arquivo:read()
arquivo:close()

print(leitura)



bom galera esse tutorial nao termina aqui nao vai ter mais uma parte onde vou falar de manipulação de redstone, rednet, alguns periferico e outras coisas, uma coisa legal que voces podem programar em lua para o computador real bastando baixar o intepretador lua para sua maquina e brincar com ele (embora prefiro perl kkk), entao ate a proxima parte \o

by kodo no kami

Ver perfil do usuário https://eofclub.in/forum

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum