Lógica ao programar - Introdução.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Lógica ao programar - Introdução.

Mensagem por JonathanMatemático em Seg 19 Mar 2012, 20:57

Lógica ao se programar - Introdução.


Arrisco dizer aqui que a maioria esmagadora das dúvidas relacionadas à Game Maker Lenguage (GML) são elementais, ou seja, se resolvem por uma simples visão lógica do problema, nada de equações complicadas para alcançar o objetivo. A partir dessa proposição decidi fazer algumas considerações (que beiram aulas) sobre lógica quando se programa, partindo de uma visão bem simples. Farei algumas considerações gerais, e, em sequencia, desenvolverei algumas problemas e explicarei qual seria a lógica para resolve-los. Espero que seja um material útil.

Para começar, vamos definir resumidamente o que é lógica. Lógica - por minhas palavras - é uma organização que faça sentido a um interpretador. Um exemplo na língua portuguesa, as sentenças "Carro azul." e "Azul carro.". A primeira forma faz sentido para o nós, brasileiros, já a segunda, não. Isso ocorre porque nosso cérebro é acostumado a ler e ouvir a primeira forma de organização (substantivo + adjetivo) e não a segunda (adjetivo + substantivo), a ordem importa. Claro, podemos até mesmo entender o que a segunda sentença deseja expressar, pois temos essa capacidade adaptativa, mas um computador, ao ler algum script, não terá essa sensibilidade, ele lerá ao pé da letra da forma que foi instruído a fazer. Se a sentença não obedecer a lógica do interpretador computacional, ou ele indicará um erro, ou, pior, ele executará uma ação diferente da planejada (digo isso pois, nesse caso, teríamos que ler todos os scripts referentes atrás de um erro lógico, processo que, dependendo do tamanho do projeto, leva até horas).

Obs.:
Spoiler:
Já na língua inglesa, a sequência adjetivo + substantivo é a certa, ou seja, a que os falantes da língua inglesa estão acostumados (seria blue car). Isso mostra que a lógica é relativa ao interpretador. Claramente isso vale para linguagens de programação, regras vigentes no GML são inaplicáveis em Java, por exemplo.

Então, lógica ao programar refere-se, como já devem ter deduzido, a escrever dentro da lógica do console do Game Maker (GM).

Vamos, nessa aula introdutória, pensar em um exemplo lógico. Vamos dizer que eu queira que um variável a seja definida em função de b com a = 2b. Como eu faria isso? Vamos pensar na lógica do GML, como ele lê o que introduzimos? Em ordem sequencial. Logo, a resolução disso seria:

Código:
b = 2;
a = 2*b;

Esse código funcionaria, pois seguimos a lógica do GML que se baseia na leitura de "cima para baixo" dos scripts. O script seguinte estaria errado por conta dessa mesma lógica:

Código:
a = 2*b;
b = 2;

Esse script retornaria um erro, pois, até o instante que dizer que a = 2*b, não dissemos quanto vale b. Como o GML definirá o valor de a se nunca ouviu falar de b até o momento? Essa questão temporal é importantíssima, e costuma às vezes pegar "macacos velhos" da programação.

É isso por enquanto, na próxima aula (se assim posso chamar) nos aprofundaremos mais.


Off topic: eaí, o que acharam? Acho o tema que escolhi interessante pelo que venho notando pelo fórum. Existem diversos tutoriais falando diretamente da lógica dessa ou daquela estrutura, mas não vi muito material sobre o básico da lógica, como a questão temporal de interpretação dos códigos. Essa é minha primeira contribuição para o fórum. Trabalharei em alguns projetos mais simples antes de pensar em algoritmos de natureza matemática avançada. Até!

JonathanMatemático

Número de Mensagens : 33
Idade : 21
Data de inscrição : 17/03/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Lógica ao programar - Introdução.

Mensagem por CAPCOM Fã em Seg 19 Mar 2012, 21:19

@JonathanMatemático

Parabéns meu amigo já sabia oque você nos introduziu e por isso digo que você explicou perfeitamente ,sua introdução ficou muito boa ,continue postando os tutoriais nesse nível e nosso conhecimento ira ficar mais elevado.

elementar caro amigo. Happy

CAPCOM Fã

Número de Mensagens : 58
Idade : 21
Data de inscrição : 08/03/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://gabrielfelipe-games-app.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Lógica ao programar - Introdução.

Mensagem por Klior em Seg 19 Mar 2012, 21:35

Meus parabéns pelo tutorial, gostei muito da sua escrita formal. Sobre o tema foi muito bem elaborado também, a maioria das duvidas aqui no fórum se da por essa falta de logica de programador.

Edit:
Off
Post número 300.

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Lógica ao programar - Introdução.

Mensagem por saim em Qui 22 Mar 2012, 09:10

JonathanMatemático escreveu:digo isso pois, nesse caso, teríamos que ler todos os scripts referentes atrás de um erro lógico, processo que, dependendo do tamanho do projeto, leva até horas
Já tive um problema que levou um pouco mais de tempo pra ser encontrado. Duas semanas olhando linha-por-linha as dezenas de scripts, procurando em qual linha de qual deles havia um erro - que não era desses que saltam numa janela, apenas uma reação inesperada do jogo. Por fim, durante o banho, uma engrenagem solta se encaixou e eu saquei que tinha invertido dois argumentos um uma função. Problemas de lógica podem ser BEM difíceis de encontrar.
JonathanMatemático escreveu:Essa questão temporal é importantíssima, e costuma às vezes pegar "macacos velhos" da programação.
Às vezes? Então eu não sou o macaco velho que achava que era... TODA HORA eu cometo esses erros. Agora já tenho mais facilidade de evitá-los e, quando são muito óbvios, de encontrá-los. Mas nunca parei de cometer essas gafes.

O tema é importante e realmente é pouco abordado, mas a linguagem está mais voltada praqueles que sabem do que você está falando. Talvez algumas alegorias, alguns exemplos relacionados ao jogo pronto deixassem o tutorial mais digerível para os novatos. Um exemplo que me vem à mente é tentar abrir uma porta verde com a chave vermelha ou sem chave nenhuma. Sem citar códigos, tente explicar como funcionaria a lógica numa situação dessas (...na colisão, o programa verificaria se a variável "chave_na_mão" tem o valor requerido pra abrir a porta, etc.).

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Lógica ao programar - Introdução.

Mensagem por JonathanMatemático em Sex 23 Mar 2012, 14:03

Obrigado a todos pelos comentários.

Saim, vida de programador é mesmo o cão nessas horas, hehe. O próximo texto que produzir será nesse sentido, tentando atingir melhor o público alvo. Gostei do seu exemplo, tentarei postar neste fim de semana.

JonathanMatemático

Número de Mensagens : 33
Idade : 21
Data de inscrição : 17/03/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Lógica ao programar - Introdução.

Mensagem por Joton em Sex 23 Mar 2012, 14:39

Realmente entender a lógica é o pilar principal para se programar e não é da noite pro dia, ou da semana, ou do mês, ou do ano é algo que é preciso ser estudado e praticado muito para ser um bom programador.

Na minha opinião achei o tutorial fraco, talvez por ser seu primeiro tuto, mas achei boa a iniciativa vou acompanhar os próximos.

Uma boa também seria fazer matemática voltada para jogos, até na internet é difícil encontrar material em português para iniciantes ou entendível, fica aí a dica pros matemáticos de plantão

Joton

Ranking : Nota B
Número de Mensagens : 836
Idade : 28
Data de inscrição : 25/07/2010
Notas recebidas : A+B+C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

http://jotonsn.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Lógica ao programar - Introdução.

Mensagem por JonathanMatemático em Sex 23 Mar 2012, 16:28

Aceito a crítica, tentarei, como sempre, elevar o nível do conteúdo.

Sobre o material sobre matemática voltada para jogos, não é, nem de longe, minha especialidade (a matemática aplicada). Mas tentarei introduzir meus conhecimentos, que são, em sua grande maioria, teóricos nesse aspecto. Só preciso, antes disso, logicamente, me acostumar novamente ao GM e arrumar um tempo livre.

JonathanMatemático

Número de Mensagens : 33
Idade : 21
Data de inscrição : 17/03/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Lógica ao programar - Introdução.

Mensagem por Lauro em Sex 23 Mar 2012, 18:10

Interessante, você explicou uma coisa simples que creio que todo mundo já tenha ficado horas tentando resolver. Eu, chorei pra aprender essa lição, de que o game maker apenas lê os códigos de cima para baixo, de esquerda para direita.
Existem outras coisas que também mudam o sentido no gm pelo simples modo de escrever, como a pontuação (, . ;) as aspas, e etc.
Isso ajuda muito ainda para quem está aprendendo gml, pois creio que esse tema não seja muito avançado.
Valeu! feliz2

Lauro

Ranking : Nota D
Número de Mensagens : 854
Idade : 19
Data de inscrição : 09/11/2010
Notas recebidas : C+D
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.google.com

Voltar ao Topo Ir em baixo

Re: Lógica ao programar - Introdução.

Mensagem por Conteúdo patrocinado Hoje à(s) 20:21


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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