image

Access unlimited bootcamps and 650+ courses forever

75
%OFF
Article image
Ernesto Santana
Ernesto Santana15/11/2025 23:14
Share

Projetos em C como Ferramenta de Aprendizagem: Relato e Análise do Desenvolvimento de Jogos Didático

  • #C

Projetos em C como Ferramenta de Aprendizagem: Relato e Análise do Desenvolvimento de Jogos Didáticos

Ernesto Santana

Universidade Estácio de Sá – UESA / Instituto Federal de Sergipe – IFS


Resumo

Este artigo analisa o processo de desenvolvimento de jogos em linguagem C como estratégia prática e eficiente na formação de estudantes e profissionais de Sistemas de Informação e Ciência da Computação. São evidenciados os benefícios do aprendizado projetual e do contato com problemas reais, detalhando três projetos desenvolvidos: Super Trunfo, Pedra, Papel, Tesoura, Lagarto, Spock e Batalha Naval. A discussão é enriquecida por exemplos de código, tabelas comparativas e gráfico de evolução, conforme orientações de Barrows (1986) e Wirth (1976).

Palavras-chave: projetos didáticos; linguagem C; aprendizado prático; desenvolvimento de jogos; estrutura de dados.

1.   Introdução

A aprendizagem computacional baseada em projetos estimula o raciocínio lógico, o domínio de algoritmos e o desenvolvimento de competências técnicas e interpessoais (BARROWS, 1986; KNUTH, 1998). O uso de desafios lúdicos e jogos clássicos programados em C permite consolidar habilidades fundamentais, promovendo autonomia intelectual e capacidade para enfrentar problemas do cotidiano profissional.

2.   Objetivo

O presente artigo tem como objetivo relatar detalhadamente o desenvolvimento e análise de jogos didáticos em linguagem C, demonstrando como projetos autorais podem potencializar o ensino e a aprendizagem de algoritmos e estruturas de dados para estudantes e profissionais da área de Sistemas de Informação e Ciência da Computação. Busca, ainda, discutir os principais desafios enfrentados, soluções encontradas, ferramentas empregadas e impactos no desenvolvimento de habilidades técnicas e comportamentais, promovendo uma abordagem reflexiva e aplicada acerca do aprendizado prático em computação.

3.   Referencial Teórico e Inspiração

Inspiram esta abordagem nomes consagrados da tecnologia e educação, como Vitor Haruo, Iglá Generoso, Filipe Deschamps e Angélica Weiler, que defendem o protagonismo do estudante e o uso de histórias reais como motor do engajamento (WEILER, 2023). O método enfatiza que projetos práticos favorecem a aprendizagem significativa, a reflexão e a socialização dos resultados (BARROWS, 1986).

4.   Materiais e Métodos

O desenvolvimento dos projetos práticos em linguagem C — Super Trunfo, Batalha Naval e Pedra, Papel, Tesoura, Lagarto, Spock — foram realizados integralmente utilizando o Visual Studio Code (VS Code) como ambiente principal de codificação. O VS Code foi escolhido por sua interface intuitiva, facilidade de configuração para linguagem C, suporte a extensões de análise estática, depuração de código e integração com Git para versionamento de projetos.

4.1 Materiais utilizados:

·        Computador pessoal com sistema operacional Windows 11.

·        Visual Studio Code versão 1.106.0, configurado para realce e formatação em linguagem C.

·        Compilador GCC, acessado via terminal integrado do VS Code, utilizado para compilar e testar os códigos em tempo real.

·        Extensões do VS Code: C/C++ Microsoft para autocompletar sintaxe, Code Runner para execuções rápidas, GitLens para controle de versões.

·        Documentação oficial da linguagem C (ISO/IEC 9899) para consulta de especificações e sintaxe.


4.2 Projeto Super Trunfo

A estrutura base do Super Trunfo foi personalizado para comparação de atributos entre cidades brasileiras utilizando a linguagem C. O projeto contempla de forma didática, lógica de menu, coleta dinâmica de dados, cálculos e mecanismos de comparação entre as cartas, na figura 1 podemos ver um trecho do código que corresponde ao menu inicial. Já na tabela 1 mostra algumas funcionalidades do jogo e as estruturas que foram utilizadas.

Foram declaradas variáveis para armazenar atributos essenciais de cidades: código, nome, população, área, PIB, número de pontos turísticos, densidade demográfica e PIB per capita.

O uso de arrays para nomes e códigos permite tratar entradas textuais de forma segura, e as variáveis float garantem precisão nos cálculos estatísticos. O programa emprega um loop do-while com um switch-case, fornecendo ao usuário opções de cadastro, visualização, comparação de cartas e verificação das regras do jogo.

Esse projeto é exemplar para aprendizado e integração de conceitos de estrutura de dados, lógica fundamental, interação com o usuário e programação de sistemas educacionais em C, atendendo objetivos de formação prática e protagonismo no desenvolvimento de competências técnicas.

image


image

4.3 Pedra, Papel, Tesoura, Lagarto, Spock

Este projeto amplia a lógica clássica do jogo em linguagem C, incorporando as variações Lagarto e Spock. O projeto serve como atividade prática para consolidar conceitos de controle de fluxo, enumerações e funções para definir múltiplos resultados conforme as regras do jogo popularizado pela cultura pop. Vemos na figura 2 o início do código com os menus interativos para que o usuário faça sua escolha, já na tabela 2 encontra-se as regras do jogo.

Utiliza um laço do-while e estrutura de switch-case para apresentar o menu principal, permitir múltiplas jogadas e separar as funções do jogo das regras e da finalização. Proporciona uma experiência de usuário intuitiva com opções claras e repetição controlada, elemento essencial em projetos interativo.

O algoritmo compara as escolhas do usuário e do computador conforme as regras estendidas do jogo. Cada condição entrega uma mensagem temática e educativa ("Pedra esmaga lagarto", "Spock vaporiza pedra"), valorizando a personalização lúdica e fortalecendo o vínculo com a cultura pop.

O código permite que o usuário repita o jogo quantas vezes desejar, promovendo engajamento contínuo e teste de diferentes possibilidades de resultado. Apresenta agradecimento temático ao final, valorizando experiência do usuário e boas práticas de interação.

Este projeto foi fundamental para treinar manipulação de condições, modularidade, interação homem-máquina e o uso lúdico de conceitos de lógica de programação, fortalecendo a habilidade de desenvolver algoritmos em C para fins educacionais e de entretenimento.


image



image


4.4 Batalha Naval

O Batalha Naval exige manipulação de matrizes para construção do tabuleiro e posicionamento dos navios; funções são aplicadas para validação das jogadas e contabilização dos disparos.

O código apresentado na figura 3 implementa a inicialização e a exibição do tabuleiro do jogo Batalha Naval utilizando a linguagem C, com foco em lógica e operações básicas de manipulação de matrizes bidimensionais. Foi utilizado uma matriz de 10x10 posições, onde cada elemento representa uma célula do tabuleiro. O valor '0' indica água e '3' indica a presença de um navio, conforme padronização definida pelo desafio.

Todos os elementos do tabuleiro são inicialmente preenchidos com água ('0'), por meio de dois laços for aninhados que percorrem todas as linhas e colunas.

Os navios são posicionados em coordenadas específicas definidas diretamente no código — por exemplo:

  • As posições [2][3], [2][4] e [2][5] representam um navio horizontal.
  • As posições [4][7], [5][7] e [6][7] representam um navio vertical.

Esse método de definição fixa permite apresentar um tabuleiro predefinido, facilitando o entendimento da lógica de posicionamento sem exigir interação dinâmica do usuário.

A exibição do tabuleiro é realizada por blocos de código organizados para cada linha, com a impressão dos índices de coluna (A-J) e linha (1-10). O loop for percorre cada célula, imprimindo água ou navio de acordo com o valor ali armazenado.

Esse e os demais desafios validam a importância do desenvolvimento prático e colaborativo, reforçando a aquisição de competências que vão muito além do domínio teórico — abrindo espaço para criatividade, autoconfiança e pensamento crítico, essenciais para profissionais da computação.


image


5.   Desafios e Soluções Adotadas

Durante o desenvolvimento foram enfrentados erros clássicos como “segmentation fault”, desalinhamentos de matrizes e conflitos em loops (KNUTH, 1998). A abordagem incluiu depuração intensiva e progressiva, consulta a documentação, troca de experiências com colegas e também em comunidades técnicas como a DIO.


Gráfico de Complexidade e Aprendizado em Projetos em C

image


6.   Reflexão sobre Aprendizagem Prática

A experiência de desenvolver projetos práticos em linguagem C — como jogos de lógica, comparação de dados e simulações de tabuleiro — reafirma a importância do “aprender fazendo” no contexto de formação em Computação. Ao ir além da teoria, o estudante desenvolve competências que não apenas complementam o conteúdo curricular, mas também produzem autoconhecimento técnico, senso crítico e autonomia intelectual (KOLB, 1984; BARROWS, 1986).


Durante o processo, tornaram-se evidentes as vantagens do erro e da iteração contínua como motores do progresso: cada bug solucionado, falha de lógica ou ajuste de fluxo traduz-se em oportunidade de crescimento e consolidação do raciocínio algorítmico. O uso de um ambiente moderno como o Visual Studio Code, aliado a boas práticas de versionamento e depuração, contribui para formar hábitos essenciais à profissão de desenvolvedor e analista.


Além do domínio de estruturas de dados, tipos variáveis e modularização de código — elementos centrais à computação — o processo favoreceu o desenvolvimento de habilidades transversais, como organização do tempo, comunicação através da documentação e busca ativa de soluções em fontes confiáveis e fóruns globais. A cada novo desafio, ampliou-se a capacidade de interpretar problemas de negócios e transformá-los em soluções implementáveis, aspecto cada vez mais valorizado no mercado de trabalho (KNUTH, 1998; PIAGET, 1952).


Finalmente, desenvolver tais projetos em ambiente aberto de aprendizagem — com inspiração em grandes profissionais e comunidades, e documentando cada etapa — fortaleceu o gosto pelo conhecimento e demonstrou o poder transformador da colaboração, criatividade e perseverança no universo da Ciência da Computação.

7.   Conclusão e Convite à Ação

A metodologia dos projetos práticos, estruturados a partir de jogos famosos e técnicas clássicas, mostrou-se eficaz na consolidação de conhecimentos essenciais e na formação de profissionais preparados para o mercado. Recomenda-se fortemente que outros estudantes e professores incorporem abordagens similares, e que profissionais compartilhem suas experiências para enriquecimento coletivo. Convido o leitor a experimentar seus próprios desafios em programação, registrando a evolução em plataformas de compartilhamento como LinkedIn, blogs, entre outros.


Referências

DAMAS, L. Linguagem C. 10. ed. Rio de Janeiro: LTC, 2024.

DEITEL, P.; DEITEL, H. C: How to Program. 8. ed. Boston: Pearson, 2015.

ISO/IEC. Programming Languages - C. Consultado na internet em: 15 jul. 2024.

PUC-RS. Comandos de Repetição. Porto Alegre: Pontifícia Universidade Católica do Rio Grande do Sul. Consultado na internet em: 17 jun. 2024.

PUC-RS. Matrizes e Vetores. Porto Alegre: PUC-RS. Consultado na internet em: 15 jul. 2024.

SCHILDT, H. C completo e total. 3. ed. São Paulo: Makron Books, 1996.

W3SCHOOLS. C Tutorial. Consultado na internet em: 15 jul. 2024.

BARROWS, H. S. A taxonomy of problem-based learning methods. Medical Education, v. 20, n. 6, p. 481-486, 1986.

KNUTH, D. E. The Art of Computer Programming. Addison-Wesley, 1998.

WEILER, A. Projetos de software e storytelling. Javanauta, LinkedIn, 2023.

Share
Recommended for you
CAIXA - Inteligência Artificial na Prática
Binance - Blockchain Developer with Solidity 2025
Neo4J - Análise de Dados com Grafos
Comments (0)