[aula 1] lógica de programação

Caronte
em Tutoriais de Scripting

Caronte

Ex-Moderador de Scripting
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 25/09/10Posts: 1341Gênero: Masculino

ipcgUqq.pnglua.gif
Aula - Lógica de programação
fala pessoal, essa aula é a primeira do conjunto que estarei criando para ensinar programação através da linguagem LUA, e depois, aprender como aplicar no tibia. 
 
as informações apresentadas a seguir são fundamentais para o apropriado entendimento da logica de programação, porém...
Caso você esteja buscando a parte mais prática, pule para: Criando Algoritmos
 
     Sem mais delongas, precisamos entender o que é o conceito de lógica de programação, 
Lógica está contida em um conjunto de atitudes/eventos que tem um sentido por trás, lógica pode tomar várias formas e definições, porém, a que vamos aprender é Lógica de Computador, ela é EXTREMAMENTE necessária para você poder criar scripts, e programar códigos de qualquer tipo e linguagem. A lógica de computador não pode ser argumentada, essa lógica tudo é ou não é, não existe o meio termo ou argumento, ela pode ser entendida na Lógica de Aristóteles com a lei da não contradição, ou é verdadeiro, ou falso.
 
    Nós somos quase totalmente diferentes de máquinas, apesar do nosso cérebro funcionar também por eletricidade, a voltagem é fraca e ele não depende só de eletricidade, mas isso não vem ao caso, o que interessa é a nossa maneira de pensar e agir, aí sim, é totalmente diferente de um computador, Porque Será?
 
    Ao pensarmos, nosso cérebro trabalha no consciente e inconsciente, alguns cientistas acreditam que a decisão acontece já no inconsciente, através de experiências já vividas e considerações, ou seja, você não sabe que seu cérebro já tomou a decisão, até ficar consciente dela (não acredito 100% nisso, essa informação não tem muita base, tem deduções), mas o que temos que entender é que a gente avalia de acordo com o nosso conhecimento já adquirido, e por meio disso, a decisão é tomada através do nosso conhecimento de certo ou errado, e a decisão não precisa ser exata.
 
   Já o computador trabalha através de instruções de linguagens não sofisticadas (códigos de máquina, exemplo: código binário, 0 ou 1), algo que é praticamente incompreensível para os humanos (se não fosse compreensível, não existiria computador), por causa da dificuldade de programar em código de máquina foi criada uma linguagem chamada Assembly que torna muito mais fácil programar, e depois dessa linguagem, foram criadas outras mais sofisticadas.
 
Criando Algoritmos.
 
   Agora o que precisamos entender é que a nossa maneira de pensar na resolução de problemas é diferente de como devemos escrever para um computador entender, o computador é muito mais burro na hora de interpretar as ideias, pois ele não tem quase nada para se basear além das suas instruções.
 
   Para explicar, vou criar um algoritmo simples para mandar um humano fazer uma determinada tarefa, comprar pão, e depois, vou explicar porque um computador não pode usar o mesmo algoritmo.
 
Vou usar os seguintes substantivos:

  • Pão
  • Dinheiro
  • Troco
  • Casa
  • Padaria
  • Compra

Vou usar os seguintes verbos:

  • Pegar
  • Ir / Voltar
  • Fazer
  • Dar

Essas são as palavras chaves.
Os verbos numa linguagem normal são geralmente chamados de Sintaxe (ou parte dela), ela é quem dirige a logica, e que faz o script ter sentido.
 
     Já os substantivos são dados valiosos, são variáveis! , variável é uma incógnita sobre o qual você tem controle, e sabe o valor , ela serve para você resumir dados e guardar, vão ser muito usadas se você quiser programar bastante, ela ajuda a identificar dados, e tornar o programa mais legível.  
 
Vamos ao algoritmo:
 
7jl7PSq.png
 
       Bom, uma tarefa com instruções tão gerais não poderia ser seguida por um computador. A menos que sejam funções, porém isso não é assunto para agora. O fato é que essas instruções são bem mais do que a quantidade necessária para um humano, você pode falar: “Vá à padaria comprar pão”, e ele irá executar perfeitamente.
 
      Porém, se você quer dar um algoritmo de como ir para a padaria para um computador executar terá que ser bem mais específico e falar todas as tarefas que ficam subentendidas para um humano, mas que não são nem um pouco claras para um computador.
 
      Para o computador entender algo parecido do que o humano entende, seria necessária muita inteligência artificial, o que não contamos quando vamos programar em LUA, novamente falo, o computador é burro.
 
   Agora vamos ao algoritmo mais próximo do que um computador precisa, vamos precisar adicionar mais termos ao nosso vocabulário:
 
Expressões condicionais:
 
3dMreHg.png
E alguns verbos e termos a mais. Vamos ao algoritmo:
 
8cLnRVI.png
 
      As expressões condicionais servem para verificar antes de fazer alguma tarefa, assim, evitamos possíveis erros, por exemplo, caso não tenha dinheiro! Se você mandar o computador pegar o dinheiro e o valor dinheiro não existe, irá gerar erros no seu script.
      Expressões condicionais não servem somente para verificar, servem para selecionar também, por exemplo, uma Quest que precise de level 20 para entrar. 
ItPlq32.png
 
      Esse algoritmo acima já dá uma parte de script, se escrito como LUA.
A expressão condicional que acabei de passar é considerada fácil, mas para uma Quest é simplesmente isso e mais algumas coisas simples.
 
     Bom, esse é o final da aula de algoritmos, gostaria de saber se fui claro em relação ao tutorial e se alguma coisa passou despercebida que merece alguma atenção a mais, assim posso editar o tópico para ficar melhor.
 
Exercício:
xWNan0f.png
 
Resposta:

Spoiler

 

Se o Player tem esse item, então:    Remova esse item,    Dê aquele item,Senão:    Dê mensagem de erro,Fim. 

 

 

 

 

Skulls

Coordenador de Eventos
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 26/02/07Posts: 859Gênero: Masculino

Show de bola, parabens pela iniciativa!

Developer Berg

Ricardo Berg
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 12/04/15Posts: 655Gênero: MasculinoChar no Tibia: Developer Berg

primeiramente quero agradecer pela essa belíssimas aulas que vc estará postando :D vou acompanhar todas :D

Caronte, fiz assim.

n sei se ficou muito certo kk :thinking:

 

 

 
Spoiler

 

Se o player tiver o item 2160,
Então remova-o e adicione 2159,
Senão: Dê mensagem de erro,
Fim.

 


 

 

Lenhador

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/02/16Posts: 81Gênero: Outro

 

Spoiler

ver o item, então:

remova o item

troque o item

senão

Mensagem de erro

Fim.

 

Sou bem iniciante sobre o mesmo, espero que esteja correto. kk

 

Drakopoulos

Pra mim, tudo é um desafio que pode ser descoberto.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 20/03/14Posts: 367Gênero: Masculino

Aew, começou  :biggrin:

Spoiler


Se o player tem item.x, então remova item.x, dar item.y,senão mensagem de errofim.

 


 

 

valakas

Valakinhas
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 28/02/14Posts: 416Gênero: Masculino

 

 

se o jogador tiver itemX então
   Remove itemX e adicione itemY
caso contrario
envie uma mensagem para ele dizendo: Você não tem itemX
finalize
 

 

 

 

 

uma coisa eu sei é mais facil para quem entende um pouco do ingles :v

tumblr_n41ua0hmLA1s5h198o1_400.gif

 

 

 

Sirarcken

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 30/11/15Posts: 174Char no Tibia: Takeiflexa Saikoreno

Top, vou acompanhar todas.

Furabio

Why be a king.. when you can be a god
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 962Gênero: Masculino

Aewhooo começou as aulas com o sensei caronte :


 

Spoiler


Inicio        Se player tiver itemX Então:        player recebe itemN        remove itemX de player    Senão:        player recebe mensagem de erro    FimFim 

 


 

 

EQD4Qy4.gif

 

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

Já começou bem, lógica de programação é essencial para quem quer ser um programador.

Parabéns e continue assim.

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

Luga03

Gabriel Lucena :D
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 14/04/15Posts: 956Gênero: Masculino


Bom, já faz tempo que n faço scripts em LUA, então creio que tenha uma ou outra coisa errado kkk

Spoiler


if getPlayerItem(cid, x) >= 1 then    doPlayerRemoveItem(cid, x, 1)    doPlayerAddItem(cid, y, 1)else    doPlayerSendCancel(cid, "Você não tem este item")end

 


 

Obs: Eu sei que era pra fazer um algoritmo, mas não sou mt bom em algoritmos sem uma linguagem e comandos definidos kkkkkkkkkkkkkkkkkkkkk (n tenho paciência kkkk)

Hello! How are you? It's fine? 

 

Okay, so you like my helps? if yes, then do you can like my post, give-me a reputation, you can't?

 

Good morning for everyone! And have a good day!

valakas

Valakinhas
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 28/02/14Posts: 416Gênero: Masculino

as aulas vai ser postada a cada quanto tempo ?

tumblr_n41ua0hmLA1s5h198o1_400.gif

 

 

 

Dennyz Dias

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 17/06/15Posts: 177Char no Tibia: GOD Server

Se tiver serto acho que entendi a logica

Spoiler


Se o player tiver item A, Então Ele removera o item A, Então  Ganhara o Item B,  Senão  Recebera uma Mensagem de erro Fim 

 


 

 

 

Str00per

Molhando as calcinhas e nunca os olhos!
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 28/03/16Posts: 120Gênero: MasculinoChar no Tibia: Stroozinho

Essa era a Logica?
Aqui esta meu "Algoritimo"

 

Se o Player tiver O ItemA:

Ele recebe o ItemB
Senão:
Da mensagem de erro

 



Em Script

 

 

 

if getPlayerItem(cid, A) >=1 then
doPlayerRemoveItem(cid, A,1)
doPlayerAddItem(cid, B, 1)
else
doPlayerSendCancel(cid, "Voce não tem o ItemA")
end

 

 

vipersig.jpg