GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por 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

Ir para baixo

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

Mensagem por JonathanMatemático 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:

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
JonathanMatemático

Data de inscrição : 17/03/2012
Reputação : 1
Número de Mensagens : 33
Prêmios : Lógica ao programar - Introdução. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

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

Mensagem por CAPCOM Fã 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ã
CAPCOM Fã

Data de inscrição : 08/03/2012
Reputação : 1
Número de Mensagens : 58
Prêmios : Lógica ao programar - Introdução. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

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

Ir para o topo Ir para baixo

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

Mensagem por Klior 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.
Lógica ao programar - Introdução. 300-sig
Klior
Klior

Data de inscrição : 07/03/2010
Reputação : 13
Número de Mensagens : 426
Prêmios : Lógica ao programar - Introdução. Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • C#
  • Javascript


Ir para o topo Ir para baixo

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

Mensagem por saim 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
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Lógica ao programar - Introdução. Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

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

Mensagem por JonathanMatemático 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
JonathanMatemático

Data de inscrição : 17/03/2012
Reputação : 1
Número de Mensagens : 33
Prêmios : Lógica ao programar - Introdução. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

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

Mensagem por Joton 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
Joton

Games Ranking : Nota B

Notas recebidas : A+B+C
Data de inscrição : 25/07/2010
Reputação : 5
Número de Mensagens : 868
Prêmios : Lógica ao programar - Introdução. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 1.4
  • Unity
  • Javascript


http://jotonsn.blogspot.com/

Ir para o topo Ir para baixo

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

Mensagem por JonathanMatemático 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
JonathanMatemático

Data de inscrição : 17/03/2012
Reputação : 1
Número de Mensagens : 33
Prêmios : Lógica ao programar - Introdução. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

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

Mensagem por Lauro 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
Lauro

Games Ranking : Nota D

Notas recebidas : C+D
Data de inscrição : 09/11/2010
Reputação : 11
Número de Mensagens : 855
Prêmios : Lógica ao programar - Introdução. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

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

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos