Quero recomendar um livro muito util para qualquer desenvolvedor de software ou interessado na area.Trata-se do Clean Code - A Handbook of Agile Software Craftsmanship (Codigo Limpo: Habilidades Praticas do Agile Software, em portugues), de Robert C. Martin.Foi um dos principais livros usado na elaboracao do meu TCC sobre desenvolvimento de software (Boas praticas para o desenvolvimento de software: um estudo sobre sua percepcao e importancia para desenvolvedores iniciantes e experientes).O livroO livro e composto por dezessete capitulos. No primeiro, o autor introduz o assunto e fala sobre codigo limpo. Os outros capitulos sao sobre questoes especificas, como o uso de nomes significativos, o gerenciamento de erros, comentarios, funcoes etc. Ha tambem um capitulo sobre code smells, identificando-os e sugerindo correcoes. Para essa lista de code smells, o autor se baseou no excelente livro Refactoring - Improving the Design of Existing Code, de Martin Fowler, que fica para uma postagem futura.Ha muito codigo e muitos exemplos de refatoracao. Isso torna a leitura um pouco pesada, mas essa foi a ideia do autor: que o leitor aprenda a transformar codigo ruim em codigo bom, na pratica.Robet C. MartinEngenheiro de software americano. Co-autor do Manifesto Agil. Atualmente dirige a empresa de consultoria Clean Coder.Onde encontrarClean Code: A Handbook of Agile Software CraftsmanshipAmazonSaraivaCodigo Limpo: Habilidades Praticas do Agile SoftwareAmazonSubmarino Semestre passado, na cadeira de algoritmos e programacao (INF01202), disciplina na qual se aprende o basico sobre programar na linguagem C, desenvolvemos como trabalho final um jogo, baseado no classico Mr. Do!. Voce pode jogar o original no Lets Play SNES - Mr Do!.O objetivo era implementar a maior quantidade de recursos possiveis, utilizando uma matriz de caracteres para representar os componentes do jogo e manipulando esses caracteres. Por exemplo, o personagem poderia ser a letra M. Ao detectar que a tecla "w" foi pressionada, a letra M era movida uma linha para cima. O jogo detecta colisoes com fantasmas e com frutas. Como aprendemos manipulacao de arquivos, as pontuacoes mais altas sao salvas, e os niveis sao carregados de um arquivo txt.O codigo esta meio desorganizado, mas da para ter uma ideia de como e relativamente facil programar um jogo simples, que parece "vivo". E muito legal ver os fantasmas correndo pela tela, tudo em tempo real.A inteligencia dos fantasmas esta completamente aleatoria, mas alguns colegas chegaram a implementar metodos mais inteligentes, na qual os fantasmas seguem o jogador, estilo Pac-Man.O jogo foi feito para Windows, pois utiliza de alguns metodos disponiveis somente neste ambiente.O codigo completo do jogo esta disponivel no Github, voce pode baixa-lo e edita-lo a vontade: Mr_do Github. E necessario ter o arquivo fase1.txt na mesma pasta do executavel.Atualizacao:Sobre a inteligencia dos fantasmas, recomendo o video How Pac-Mans Ghosts Think & Hunt. Ele explica sobre a complexidade e personalidade de cada um dos fantasmas do Pac-Man. Cada um possui um algoritmo diferente para perseguir o jogador. E muito interessante! Implementar esses algoritmos nao e nada facil, alguns colegas gastaram mais de 500 linhas para versoes simplificadas. Trabalho final para a disciplina de algoritmos, escrito em C. (Mr_Do)Ja pensou em aprender a