Entrar
Últimos assuntos
» Procuro Programador de game makerpor Wou Sex 15 Mar 2024, 10:27
» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
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
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|