{"id":26560883,"url":"https://github.com/msamuelsons/adaptive-system","last_synced_at":"2026-02-22T23:10:00.147Z","repository":{"id":282990990,"uuid":"942330911","full_name":"Msamuelsons/adaptive-system","owner":"Msamuelsons","description":"Sistema autônomo de combate","archived":false,"fork":false,"pushed_at":"2025-03-18T01:58:28.000Z","size":8099,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-29T11:43:22.305Z","etag":null,"topics":["autonomous","bts","fuzzy-logic","machine-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Msamuelsons.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-03-04T00:07:37.000Z","updated_at":"2025-08-18T13:07:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"a8a41405-e6e0-4ecc-a378-203710fbb115","html_url":"https://github.com/Msamuelsons/adaptive-system","commit_stats":null,"previous_names":["msamuelsons/adaptive-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Msamuelsons/adaptive-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msamuelsons%2Fadaptive-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msamuelsons%2Fadaptive-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msamuelsons%2Fadaptive-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msamuelsons%2Fadaptive-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Msamuelsons","download_url":"https://codeload.github.com/Msamuelsons/adaptive-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msamuelsons%2Fadaptive-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29730340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T20:09:16.275Z","status":"ssl_error","status_checked_at":"2026-02-22T20:09:13.750Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["autonomous","bts","fuzzy-logic","machine-learning"],"created_at":"2025-03-22T13:30:23.184Z","updated_at":"2026-02-22T23:10:00.031Z","avatar_url":"https://github.com/Msamuelsons.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Autonomous Duel - Fuzzy Logic Edition\n\nUm simulador de duelo autônomo que utiliza lógica fuzzy e árvores de comportamento para criar avatares inteligentes que lutam entre si, com um sistema emocional dinâmico que influencia suas ações.\n\n![Apresentação](https://github.com/Msamuelsons/adaptive-system/blob/main/docs/apresentacao.gif?raw=true)\n\n## Sobre o Projeto\n\nEste projeto implementa um simulador de duelo autônomo entre dois avatares controlados por inteligência artificial. A IA é baseada em duas tecnologias principais:\n\n1. **Árvores de Comportamento**: Controla a tomada de decisões dos avatares usando a biblioteca `py_trees`.\n2. **Lógica Fuzzy**: Define o sistema de dano adaptativo através da biblioteca `skfuzzy`.\n\nOs avatares possuem um sistema emocional complexo que influencia seu comportamento. À medida que um avatar sofre danos, sua raiva aumenta, podendo entrar em um \"modo berserk\" que aumenta seus ataques e velocidade de movimento.\n\n## Características Principais\n\n- **Sistema Emocional Dinâmico**: Avatares experimentam emoções como raiva e frustração\n- **Modo Berserk**: Quando a raiva atinge um nível crítico, os avatares entram em frenesi\n- **Lógica Fuzzy para Danos**: O dano causado é calculado por um sistema fuzzy que considera níveis de raiva e porcentagem de vida\n- **Árvores de Comportamento**: Controle autônomo de decisões de aproximação e ataque\n- **Animações Fluidas**: Animações para estados de movimento, ataque e idle\n- **Interface Visual**: Exibição de barras de vida, níveis de raiva e status dos avatares\n\n## Requisitos\n\n- Python 3.7+\n- Pygame\n- py_trees\n- NumPy\n- scikit-fuzzy\n\n## Instalação\n\n1. Clone o repositório:\n```\ngit clone https://github.com/Msamuelsons/adaptive-system.git\ncd adaptive-system\n```\n\n2. Instale as dependências:\n```\npip install pygame py_trees numpy scikit-fuzzy\n```\n\n3. Execute o jogo:\n```\npython main.py\n```\n\n## Estrutura de Arquivos\n\n```\n├── main.py                  # Arquivo principal do jogo\n├── fuzzy_ai_controller.py   # Implementação da IA com árvores de comportamento\n├── resources/               # Recursos gráficos e de áudio\n│   └── sprites/             # Sprites para os avatares\n│       ├── avatarA/         # Sprites do Avatar A\n│       ├── avatarB/         # Sprites do Avatar B\n│       └── background.png   # Imagem de fundo\n```\n\n## Como Funciona\n\n### Sistema Fuzzy\n\nO sistema usa lógica fuzzy para calcular o dano causado pelos avatares baseado em:\n\n- **Raiva**: De 0 a 15, classificada como baixa, média, alta, ou berserk\n- **Porcentagem de HP**: De 0 a 100, classificada como crítica, baixa, média, ou alta\n\nAs regras fuzzy combinam estes fatores para determinar um valor de dano que pode ser baixo, médio, alto ou crítico.\n\n### Árvore de Comportamento\n\nA árvore de comportamento controla as ações dos avatares com duas sequências principais:\n\n1. **Sequência de Aproximação**: Se a distância for maior que o limiar, o avatar se aproxima\n2. **Sequência de Ataque**: Se a distância for menor ou igual ao limiar, o avatar ataca\n\nEm modo berserk, uma árvore modificada permite ataques mais agressivos e múltiplos.\n\n### Sistema Emocional\n\nO estado emocional dos avatares é influenciado por:\n\n- Quantidade de HP restante\n- Dano recente recebido\n- Ataques consecutivos bem-sucedidos\n- Falhas consecutivas ao atacar\n\n## Jogabilidade\n\nO jogo é totalmente autônomo - ambos os avatares são controlados pela IA e lutam até que um deles seja derrotado.\n\nQuando o jogo termina:\n- Pressione `R` para reiniciar o duelo\n- Pressione `ESC` para sair do jogo\n\n## Personalizações\n\nÉ possível ajustar vários parâmetros do jogo:\n\n- Limiares de distância de ataque\n- Velocidade de movimento\n- Parâmetros de raiva e modo berserk\n- Funções de pertinência do sistema fuzzy\n\n## Desenvolvimento Futuro\n\nIdeias para expansão:\n- Adicionar mais avatares com comportamentos distintos\n- Implementar um sistema de evolução genética para melhorar as IAs\n- Adicionar elementos de ambiente interativos\n- Criar um modo para controle manual pelo jogador\n\n## Atribuições\n\nOs sprites utilizados no projeto foram obtidos de fontes gratuitas ou de uso livre para fins educacionais.\n\n## Licença\n\nEste projeto é distribuído sob a licença MIT. Veja o arquivo `LICENSE` para mais detalhes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsamuelsons%2Fadaptive-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsamuelsons%2Fadaptive-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsamuelsons%2Fadaptive-system/lists"}