Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
Lógica ao programar - Introdução.
+2
CAPCOM Fã
JonathanMatemático
6 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Lógica ao programar - Introdução.
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.:
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:
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:
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é!
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- Data de inscrição : 17/03/2012
Reputação : 1
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Lógica ao programar - Introdução.
@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.
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.
Re: Lógica ao programar - Introdução.
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.
Edit:
Off
Post número 300.
Klior- Data de inscrição : 07/03/2010
Reputação : 13
Número de Mensagens : 426
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- C#
- Javascript
Re: Lógica ao programar - Introdução.
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: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
À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.JonathanMatemático escreveu:Essa questão temporal é importantíssima, e costuma às vezes pegar "macacos velhos" da programação.
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- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Lógica ao programar - Introdução.
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.
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- Data de inscrição : 17/03/2012
Reputação : 1
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Lógica ao programar - Introdução.
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
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
Re: Lógica ao programar - Introdução.
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.
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- Data de inscrição : 17/03/2012
Reputação : 1
Número de Mensagens : 33
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Lógica ao programar - Introdução.
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!
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!
Lauro- Games Ranking :
Notas recebidas : C+D
Data de inscrição : 09/11/2010
Reputação : 11
Número de Mensagens : 855
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Qual seria a lógica para programar isto?
» Programar Shaders
» Aprender a programar em GameMaker
» Ajudante (que saiba programar)
» programar salto num pieceofcode
» Programar Shaders
» Aprender a programar em GameMaker
» Ajudante (que saiba programar)
» programar salto num pieceofcode
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos