{"id":21015934,"url":"https://github.com/equiel-1703/trabalho-final-aedi-windows","last_synced_at":"2025-09-07T01:06:48.052Z","repository":{"id":108228545,"uuid":"563024050","full_name":"Equiel-1703/Trabalho-final-AEDI-Windows","owner":"Equiel-1703","description":"Trabalho final da disciplina de Algoritmos e Estruturas de Dados I, lecionada pelo prof. Rafael Burlamaqui na Universidade Federal de Pelotas. Essa versão possui uma interface melhor com o usuário, usando da API do Windows.","archived":false,"fork":false,"pushed_at":"2022-11-15T23:25:04.000Z","size":9574,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-13T16:46:22.090Z","etag":null,"topics":["abstract-data-types","avl-tree","avl-tree-implementations","c","windows-api"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Equiel-1703.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-07T18:48:03.000Z","updated_at":"2022-11-17T19:06:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"4d85dda7-0098-4f63-922d-3e4b51dac719","html_url":"https://github.com/Equiel-1703/Trabalho-final-AEDI-Windows","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Equiel-1703/Trabalho-final-AEDI-Windows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Equiel-1703%2FTrabalho-final-AEDI-Windows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Equiel-1703%2FTrabalho-final-AEDI-Windows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Equiel-1703%2FTrabalho-final-AEDI-Windows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Equiel-1703%2FTrabalho-final-AEDI-Windows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Equiel-1703","download_url":"https://codeload.github.com/Equiel-1703/Trabalho-final-AEDI-Windows/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Equiel-1703%2FTrabalho-final-AEDI-Windows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273983150,"owners_count":25202102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstract-data-types","avl-tree","avl-tree-implementations","c","windows-api"],"created_at":"2024-11-19T10:11:46.415Z","updated_at":"2025-09-07T01:06:48.030Z","avatar_url":"https://github.com/Equiel-1703.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trabalho Final de AED I (com API do Windows)\n_Feito por Henrique Gabriel Rodrigues_\n\nEsse foi meu trabalho final da disciplina de Algoritmos e Estruturas de Dados I, lecionada pelo professor Rafael Burlamaqui na Universidade Federal de Pelotas. \n\nEssa versão possui uma interface muito mais interessante com o usuário, usando dos recursos disponíveis na API do Windows.\n\nMuitos dos recursos usados aqui foram reaproveitados do código que escrevi para fazer os gráficos do [8-Puzzle](https://github.com/Equiel-1703/8-Puzzle), jogo feito como trabalho final da disciplina de Programação de Computadores. Esses códigos foram muito melhorados e otimizados. Por exemplo, antes os sprites eram lidos diretamente de um arquivo txt salvo no disco rígido. Agora, os sprites são carregados em strings alocadas dinamicamente na RAM, otimizando e muito a utilização deles. \n\nA forma de exibir os sprites na tela também foi otimizada. Antes eles eram exibidos linha a linha usando funções como fgets ou getline para ler do arquivo no disco e imprimindo na tela com printf. Nessa versão melhorada, o arquivo já está na RAM, portanto só percorri o vetor buscando o índice de início e fim desejado e imprimi na tela usando fwrite (que é muito mais rápido que a função printf).\n\nEssas e outras melhorias permitiram até mesmo compilar com o MinGW-W64. Isso era impossível antes, pois por algum motivo quando o 8-Puzzle era compilado com o MinGW-W64 os sprites eram exibidos linha a linha de forma extremamente lenta, tornando impossível de jogar o game. Mas isso estranhamente não acontecia no MinGW normal (que é de 32 bits).\n\nMeu palpite é de que no MinGW normal o compilador criava um buffer onde os arquivos que eram constantemente acessados no disco (os sprites nesse caso) eram salvos, e portanto não causava lentidão na hora de exibir na tela. Já o MinGW-W64 não faz isso, e então causa o bug que mencionei. Mas graças às melhorias feitas na biblioteca de gráficos, esse bug não acontece mais com o MinGW-W64.\n\nQuanto à parte do TAD da árvore AVL, ela é exatamente igual em ambas as versões do trabalho final de AED I.\n\nUm relatório descrevendo as maiores dificuldades, funcionamento e estrutura do código pode ser acessado [aqui](https://drive.google.com/file/d/18D8r6IBg3ftjk23JjUlPvt_c7hH8h80E/view?usp=share_link).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequiel-1703%2Ftrabalho-final-aedi-windows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequiel-1703%2Ftrabalho-final-aedi-windows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequiel-1703%2Ftrabalho-final-aedi-windows/lists"}