Buscar

relatorio de algoritmo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO ACADÊMICO DO AGRESTE
NÚCLEO DE TECNOLOGIA
CURSO DE ENGENHARIA DE PRODUÇÃO
Campo Minado
Alunos: Dara Alice;
 Deivson Lucas;
 Fillipe Néri.
 
Turma: 2014.1
Disciplina: Algoritmos e Programação de Computadores
Professora: Michele Mara de Araújo E. Lima 
Caruaru, 07 de agosto de 2014.
1 – Resumo
Em busca de pôr em prática o nosso aprendizado na disciplina, fomos instruídos para projetar um Campo Minado, na linguagem C. Por ser um jogo que perdura até os dias atuais, torna-se interessante vê-lo funcionar em outras plataformas. 
O código mostra ao usuário um tabuleiro sem marcações, composto, em todas as posições, da letra N; lê do arquivo de entrada, criado previamente no bloco de notas, a matriz de caracteres, onde foram marcados as bombas (*) e os espaços livres (-); com a matriz de entrada lida, é calculado a matriz vizinhança, a qual também é mostrada ao usuário, com números inteiros que representam a quantidade de bombas que estão nas posições mais próximas; o usuário poderá marcar ou desmarcar os símbolos que digitou; e por último tem a opção de saída. Esses encargos são executados pelas opções de jogo, onde:
Ver Tabuleiro;
Marcar Símbolo;
Desmarcar Símbolo;
Sair.
Apesar de ser uma tarefa que exige muita dedicação, é extremamente gratificante quando o código compila, e executa. 
Mas sem perder tempo, adiante-se, o Campo Minado está lhe esperando!!
2 – Objetivos
3 – Introdução
Os jogos surgiram nas antigas civilizações e veem alegrando desde os mais antigos habitantes até os atuais. Com o intuito primordial de diversão, eles também servem para aprendizagens. Assim tornam-se as maneiras mais divertidas de aprender, pois os conhecimentos surgem da forma mais descontraída. Jogos matemáticos, lógicos, e de memória são exemplos de entretenimento educativo. 
Entretanto, a tecnologia tem dado um toque mais ágil, preciso e sofisticado ao mundo, e vem interferindo em diversas áreas, dentre elas, a dos jogos. Jogos antigos, deram lugar aos modernos. Alguns foram reestruturados e reaproveitados, e continuam a divertir muitos até hoje, porém outros foram exonerados e os novos ocuparam seus cargos.
Um jogo que não é muito recente, mas que continua agradando seus usuários é o Campo Minado. Esse entretenimento tem sido reescrito para as mais diversas plataformas, sendo a mais popular, a sua versão que vem nativamente com a Microsoft Windows. 
O Campo Minado é um teste de memória e raciocínio aparentemente simples. Onde o objetivo é encontrar os quadrados vazios e evitar as minas. Apesar de serem dadas algumas dicas, o jogo exige concentração e prática, pois nas primeiras jogadas a tendência é clicar em bombas achando que a posição está livre, e acaba perdendo o jogo. A sede de conseguir abrir cada vez mais uma maior quantidade de quadradinhos, sem errar nas bombas, faz o jogador querer jogar mais e mais. Por isso um jogo “antigo” ainda faz sucesso diante de uma sociedade tão evoluída, comparada com o passado, e exigente.
Este projeto visa, portanto, a criação de uma lógica e implementação dos Algoritmos em linguagem C, do jogo Campo Minado. Dessa forma, colocam-se os conhecimentos adquiridos na disciplina em prática, de uma forma mais palpável e entendível, pois é possível perceber que o aprendido toma formas antes imagináveis. 
4 - Materiais e Métodos
4.1 – Materiais
4.1.1 - Computador Intel® Core™ i5 2450M CPU @ 2.50GHz, 8,00GB, 64 bitz. Windows 8 Pro; 
4.1.2 - Bloco de notas, abre arquivo txt;
4.1.3 - Compilador Dev - C++, versão 5.5.3;
4.2- Métodos
Elaborou-se um programa que ler uma matriz de caracteres do arquivo de entrada, onde cada asterisco representa uma bomba na coordenada lida, e traço representa um local sem bomba. O arquivo de entrada pode conter apenas tabuleiros que sejam 5x5, 7x7 ou 9x9. Elaborou-se uma função para mostrar o número de bombas na matriz vizinhança.
Inicialmente apresenta-se um menu ao usuário onde o mesmo pode escolher uma das opções a seguir:
Ver tabuleiro: Caso escolhida será apresentado o tabuleiro com a matriz de vizinhança, o tabuleiro com a matriz que contém as opções já jogadas, o número de bombas e o número de acertos.
Marcar símbolo: Nessa opção, além dos itens anteriores, o usuário irá informar a linha e a coluna na qual ele queira marcar como bomba ou como livre. Caso ele marque corretamente, o tabuleiro será reimpresso no tabuleiro contendo a marcação do usuário, se ele marcar como livre uma posição que contenha bomba, será informado que ele perdeu, e se marcado corretamente todas as posições o programa finaliza-se e a matriz vizinhança é salva no arquivo de saída. 
Gerou-se funções e procedimentos para contabilizar o número de bombas que contém no arquivo, gerar a matriz de vizinhança, imprimir a matriz de vizinhança, marcar símbolos, imprimir o tabuleiro, gerar a matriz tabuleiro, imprimir o menu. 
5 – Relatos
Há algumas semanas, foi apresentado, aos alunos de Engenharia de Produção, quatro propostas de projetos da disciplina de Algoritmos. Apesar das interações cotidianas entre colegas, a escolha de companheiros de trabalho foi árdua. As consequências dessas escolhas perduraram até o fim do processo.
Além disso, referente à programação, houveram exaustivas dificuldades. Antes do programa ser implementado em C, as ideias foram passadas para o papel, e alguns desejos da especificação do trabalho foram mal interpretados, isso fez com o que o trabalho corresse de forma desacelerada. 
Porém, depois de entender o que as opções do Menu exigiam, e transcrever para àquele papel a verdadeira versão do pedido, foi mais fácil traduzir a nossa linguagem para linguagem C.
Entretanto pequenas falhas, como digitar return ao invés de return ,’ %&’ em vez de ‘%d’, declarar o tipo da função e quando for alocar memória escrever com tipo diferente, esquecer uns ‘ ; ‘ , e ao fazer alterações no código, do tipo tirar um trecho do código do case para criar uma rotina externa, algumas chaves sobravam e partes do código se repetiam; trouxeram problemas na parte de compilação.
Outro obstáculo encontrado foi quando alterava-se um código que compilava, adicionando ou trocando algumas coisas, e depois não compilava novamente. Isso nos fez perder alguns antigos começos de código certo, até descobrirmos que algumas vezes dá para retirar as novas alterações e retomar ao anterior.
Variáveis significativas ajudaram bastante, pois como trabalha-se com algumas matrizes era necessário entender qual era qual, assim, por exemplo: mv= Matriz Vizinhança; me= Matriz de Entrada; tj =Tabuleiro do Jogo. Por isso tivemos um certo cuidado, pois para gerar uma bagunça nas lógicas era muito rápido.
Saindo mais da parte da compilação e analisando a da execução, sentia-se uma série de sentimentos ruins quando via-se “O programa parou de funcionar!”, isso nos fazia voltar ao DevC++ e analisar as falhas. Houve também confusões ao inserir parâmetros para a execução do programa, a princípio não sabia-se como separava-se um parâmetro do outro, testava-se com vírgula, ponto, ponto-e-vírgula, e nenhuma alteração. Até que aprendemos a separar somente por espaço. Em relação aos parâmetros ainda, preocupava-se muito em digitar corretamente até o arquivo de saída previamente criado e salvo em branco, até entender que o único que tem que se preocupar é com o de entrada.
Houve muitas dificuldades e dúvidas, mas teve a ajuda dos monitores e algumas vezes da Professora, abdicamos de outras tarefas, mas foi feito o possível, em tempo ainda hábil.
Algumas, ou até muitas falhas deverão ter neste código, mas é garantido o esforço de cada um dos três em busca de fazer um trabalho satisfatório. 
6 – Conclusão
De forma geral, foi facilmente perceptível a importância da disciplina de Algoritmos, atuando em qualquer área.
 Esse projeto foi o impulso para outros. Egraças a este, com o uso frenético dos comandos, das rotinas, dos parâmetros ficou mais claro as funcionalidades de cada um. 
Foi importante para sentirmos o poder do trabalho em grupo, pois cada um fez a sua parte, respeitando os limites do outro.
Observou-se que trabalhos como esse, exige tempo e dedicação, e uma boa base prescrita durante o semestre.
E por fim, conclui-se que os erros cometidos podem até compilar, mas pode dar uma falha na execução e tudo pode parar. Então, é necessário ter foco, e não desistir no primeiro obstáculo, pois virão outras condições e mesmo que não retorne, o procedimento será executado da melhor forma. 
7 – Referências Bibliográficas
7.1 – MICROSOFT. Campo Minado. Windows. 2014. Disponível em: <http://windows.microsoft.com/pt-br/windows/minesweeper-how-to#1TC=windows-7>. Acessado em: 04 ago. 2014.
7.2 - SCHILDT, Herbert. C Completo e Total; Makron Books. 3. ed. São Paulo ,1997.

Outros materiais