Aeca
Publicações recentes
-
Capítulo 20 — Escopo: onde uma variável realmente existe
Nossas funções já recebem dados e devolvem resultados. Agora precisamos entender onde cada nome pode realmente ser utilizado. No capítulo anterior nossas funções finalmente aprenderam a devolver resultados. Criamos: E utilizamos: Também criamos: Agora observe algo interessante. Temos: e também: Nos dois lugares existe um identificador chamado: Eles representam a mesma variável? Não. Por que uma fu…
-
Capítulo 19 — Valores de retorno: quando uma função precisa devolver um resultado
Capítulo 19 — Valores de retorno: quando uma função precisa devolver um resultado Série: Do zero ao jogo comercial com C++ e SFML Algumas funções apenas executam ações. Outras precisam calcular algo e devolver esse resultado para quem as chamou. No capítulo anterior nossas funções finalmente aprenderam a receber informações. Começamos com funções sem parâmetros: Depois evoluímos para: e: Agora nos…
-
Capítulo 18 — Parâmetros: enviando dados para funções
Nossas funções já sabem executar comportamentos. Agora elas precisam receber as informações necessárias para realizar seu trabalho. No capítulo anterior começamos a resolver um problema que finalmente ficou evidente em nosso projeto: Nosso mini Game Loop já acumulava diferentes responsabilidades: Então criamos nossas primeiras funções: E começamos a substituir detalhes como: por chamadas com inten…
-
Capítulo 17 — Funções: nosso main.cpp começou a crescer
Nosso primeiro mini Game Loop funciona. Agora precisamos começar a organizar comportamentos sem esconder aquilo que ainda estamos aprendendo. No capítulo anterior construímos nosso primeiro mini Game Loop no console. Pela primeira vez nosso programa passou a possuir um ciclo contínuo: Também começamos a combinar vários conhecimentos anteriores: Nosso main() deixou de ser apenas algumas linhas. Ele…
-
Capítulo 16 — Nosso primeiro mini Game Loop no console
Pela primeira vez, nosso programa vai deixar de executar uma sequência curta e começar a se comportar como uma aplicação de jogo em execução contínua Até agora construímos várias peças fundamentais. Aprendemos a armazenar estado: Representamos valores que não deveriam mudar: Criamos decisões: Representamos estados nomeados: E aprendemos a repetir ações: e: Cada conceito foi estudado separadamente.…
-
Capítulo 15 — Loops com for
Quando sabemos onde a repetição começa, até onde ela vai e como o contador evolui, for reúne tudo em uma única estrutura No capítulo anterior aprendemos a repetir ações com: Nosso exemplo principal foi: E percebemos que esse pequeno loop possui três partes importantes: No while, essas partes aparecem em locais diferentes. Isso não é um problema. Na verdade, while é excelente quando a repetição dep…
-
Capítulo 14 — Loops com while
Nosso programa já sabe escolher. Agora ele precisa aprender a repetir ações enquanto uma condição permanecer verdadeira. Nos últimos capítulos nosso programa evoluiu bastante. Ele começou apenas executando instruções em sequência. Depois aprendeu a armazenar estado: Aprendeu a representar melhor diferentes informações: Passou a utilizar constantes: Começou a transformar dados: Aprendeu a construir…
-
Capítulo 13 — Estados mais seguros com enum class
Quando números deixam de representar bem o significado do nosso jogo, podemos criar um tipo próprio para os estados válidos No capítulo anterior aprendemos a utilizar switch quando uma mesma informação pode corresponder a várias opções discretas conhecidas. Nosso exemplo final representava as estações do ano desta maneira: Depois: Comparado aos números soltos: as constantes melhoraram bastante a l…
-
Capítulo 12 — Muitas opções: quando switch ajuda
Quando uma única informação pode assumir várias opções conhecidas, precisamos escolher uma estrutura que represente isso com clareza No capítulo anterior nosso programa evoluiu de uma decisão simples: para uma decisão com dois caminhos: Agora conseguimos representar: Isso funciona muito bem quando temos duas alternativas. Mas jogos frequentemente apresentam situações diferentes. Imagine um menu: O…
-
Capítulo 11 — Quando existem alternativas
Nosso programa já sabe perguntar. Agora ele precisa escolher entre dois caminhos diferentes. No capítulo anterior nosso programa finalmente começou a tomar decisões. Aprendemos a utilizar: para executar um bloco somente quando uma condição fosse verdadeira. Por exemplo: Essa regra já resolve metade do problema. Se o jogador possuir moedas suficientes: Mas e se não possuir? Atualmente nosso program…
-
Capítulo 10 — Decisões: ensinando nosso programa a escolher
Nosso código já calcula resultados. Agora ele precisa observar uma situação e decidir se deve agir. Até agora, nosso programa executa suas instruções praticamente em sequência. Algo parecido com: Nos últimos capítulos já conseguimos escrever: Também construímos expressões como: Mas existe um problema cada vez mais evidente. Imagine: E se o dano for maior que a vida atual? Poderíamos terminar com: …
-
Capítulo 09 — Expressões: combinando valores e operações
Quando valores, variáveis e operadores começam a trabalhar juntos para produzir novos resultados No capítulo anterior nosso programa deixou de apenas armazenar informações. Começamos a transformá-las. Utilizamos operadores como: Também realizamos cálculos: e: Até aqui conseguimos compreender cada operação isoladamente. Mas considere: Agora temos várias coisas acontecendo na mesma instrução. Temos:…
-
Capítulo 08 — Operadores: transformando dados
Nosso estado já existe. Agora precisamos calcular, modificar e combinar seus valores. Nos capítulos anteriores, nosso pequeno programa começou a armazenar diferentes tipos de informações e a separar estado mutável de regras constantes. Agora surge um novo problema: um jogo não pode apenas armazenar estado. Ele precisa transformá-lo. Quando o jogador sofre dano: Quando recebe moedas: Quando recebe …
-
Capítulo 07 — Constantes: valores que não deveriam mudar
Quando uma informação representa uma regra fixa, nosso código também deve deixar essa intenção explícita No capítulo anterior começamos a perceber que nem toda informação do nosso jogo possui a mesma natureza. Criamos: Agora nosso programa já consegue representar diferentes tipos de dados. Mas existe outra diferença importante entre informações. Algumas devem mudar durante a execução: Outras repre…
-
Capítulo 06 — Tipos: nem toda informação é igual
int, float, double, bool, char e std::string: começando a representar corretamente os diferentes dados do nosso jogo No capítulo anterior nosso programa finalmente começou a lembrar informações. Criamos variáveis como: E conseguimos alterar esses valores durante a execução: Nosso pequeno programa passou a possuir estado. Mas existe um problema. Até agora todas as informações que armazenamos eram n…
-
Capítulo 05 — Variáveis: nosso futuro jogo precisa lembrar informações
Nosso primeiro passo para transformar mensagens fixas em um programa que possui estado Até agora, nosso projeto sabe fazer algo muito simples: Nos capítulos anteriores aprendemos a: criar nosso primeiro programa; compreender sua estrutura básica; quebrá-lo propositalmente; interpretar os primeiros erros; diferenciar código-fonte, Build, executável e execução. Mas existe uma limitação importa…
-
Capítulo 04 — Build, Run e Executable não são a mesma coisa
Do main.cpp ao programa em execução: entendendo o que realmente acontece quando salvamos, construímos e executamos nosso projeto C++ Nos capítulos anteriores começamos nossa jornada com algo extremamente simples: Primeiro, fizemos esse código funcionar. Depois, entendemos sua estrutura. Em seguida, começamos a quebrá-lo de propósito para aprender a ler erros, formular hipóteses, corrigir problemas…